MySQL--公司培訓(xùn)ppt課件.ppt_第1頁
MySQL--公司培訓(xùn)ppt課件.ppt_第2頁
MySQL--公司培訓(xùn)ppt課件.ppt_第3頁
MySQL--公司培訓(xùn)ppt課件.ppt_第4頁
MySQL--公司培訓(xùn)ppt課件.ppt_第5頁
已閱讀5頁,還剩65頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、MySQL,培訓(xùn)人:*,1,啟動MySQL服務(wù)器,啟動MySQL服務(wù)器的方法有兩種:系統(tǒng)服務(wù)器和命令提示符(DOS) 1通過系統(tǒng)服務(wù)器啟動MySQL服務(wù)器 如果MySQL設(shè)置為Windows服務(wù),則可以通過選擇“開始”/“管理工具”/“服務(wù)”命令打開Windows服務(wù)管理器。在服務(wù)器的列表中找到mysql服務(wù)并右擊,在彈出的快捷菜單中選擇“啟動”命令,啟動MySQL服務(wù)器,如圖所示。,2,啟動MySQL服務(wù)器,2在命令提示符下啟動MySQL服務(wù)器 選擇“開始”/“運(yùn)行”命令,在彈出的“運(yùn)行”對話框中輸入cmd命令,按Enter鍵進(jìn)入DOS窗口。在命令提示符下輸入: net start mysq

2、l 按Enter鍵,即可啟用MySQL服務(wù)器,如圖所示。,3,斷開MySQL服務(wù)器,1通過系統(tǒng)服務(wù)器停止MySQL服務(wù)器 如果將MySQL設(shè)置為Windows服務(wù),則可以通過選擇“開始”/“管理工具”/“服務(wù)”命令,打開Windows服務(wù)管理器,在服務(wù)器的列表中右擊mysql服務(wù),在彈出的快捷菜單中選擇“停止”命令,停止mysql服務(wù),如圖所示。,4,停止MySQL服務(wù)器,2在命令提示符下停止MySQL服務(wù)器 選擇“開始”/“運(yùn)行”命令,在彈出的“運(yùn)行”對話框中輸入cmd命令,進(jìn)入DOS窗口,在命令提示符下輸入: net stop mysql 按Enter鍵即可停止MySQL服務(wù)器,如圖所示。

3、,5,創(chuàng)建數(shù)據(jù)庫CREATE DATABASE,使用CREATE DATABASE語句可以輕松創(chuàng)建MySQL數(shù)據(jù)庫。 語法格式如下: CREATE DATABASE 數(shù)據(jù)庫名; 在創(chuàng)建數(shù)據(jù)庫時,數(shù)據(jù)庫命名有以下幾項規(guī)則: 不能與其他數(shù)據(jù)庫重名,否則將發(fā)生錯誤。 名稱可以由任意字母、阿拉伯?dāng)?shù)字、下劃線(_)和“$”組成,可以使用上述的任意字符開頭,但不能使用單獨(dú)的數(shù)字,否則會造成它與數(shù)值相混淆。 不能使用MySQL關(guān)鍵字作為數(shù)據(jù)庫名、表名。 在默認(rèn)情況下,Windows下數(shù)據(jù)庫名、表名的大小寫是不敏感的,而在Linux下數(shù)據(jù)庫名、表名的大小寫是敏感的。為了便于數(shù)據(jù)庫在平臺間進(jìn)行移植,建議采用小寫

4、來定義數(shù)據(jù)庫名和表名。,6,刪除數(shù)據(jù)庫DROP DATABASE,刪除數(shù)據(jù)庫可以使用DROP DATABASE語句。 語法格式如下: DROP DATABASE 數(shù)據(jù)庫名;,7,數(shù)據(jù)庫基礎(chǔ)知識,數(shù)據(jù)庫基礎(chǔ)知識概述 SQL概述 SQL語言,8,數(shù)據(jù)庫基礎(chǔ)知識,數(shù)據(jù)庫由一批數(shù)據(jù)構(gòu)成的有序集合,這些數(shù)據(jù)被分門別類地存放在一些結(jié)構(gòu)化的數(shù)據(jù)表(table)里,而數(shù)據(jù)表之間又往往存在交叉引用的關(guān)系,這種關(guān)系使數(shù)據(jù)庫又被稱為關(guān)系型數(shù)據(jù)庫 檔案柜=數(shù)據(jù)庫 抽屜=表 文件=記錄,9,數(shù)據(jù)庫,數(shù) 據(jù) 表 存儲過程 視 圖 .,表,產(chǎn)品數(shù)據(jù)庫,10,數(shù)據(jù)表,11,數(shù)據(jù)在表中的存放,存在冗余,為減少數(shù)據(jù)查找的麻煩,允

5、許數(shù)據(jù)有一定的冗余,12,數(shù)據(jù)存儲的完整性,存在不正確、不準(zhǔn)確的數(shù)據(jù),數(shù)據(jù)庫“失去了完整性”,13,數(shù)據(jù)的完整性,+,=,數(shù)據(jù)完整性,14,完整性分類,數(shù)據(jù)實(shí)體完整性 字段完整性 引用完整性 自定義完整性,15,數(shù)據(jù)實(shí)體完整性,約束方法:唯一約束、主鍵約束、標(biāo)識列,16,字段完整性,約束方法:限制數(shù)據(jù)類型、檢查約束、外鍵約束、默認(rèn)值、非空約束,17,引用完整性,約束方法:外鍵約束,18,自定義完整性,約束方法:規(guī)則、存儲過程、觸發(fā)器,19,完整性包括,輸入的類型是否正確? 年齡必須是數(shù)字 輸入的格式是否正確? 身份證號碼必須是18位 是否在允許的范圍內(nèi)? 性別只能是”男”或者”女” 是否存在重

6、復(fù)輸入? 學(xué)員信息輸入了兩次 是否符合其他特定要求? 信譽(yù)值大于5的用戶才能夠加入會員列表 ,20,SQL概述,什么是SQL? SQL是Structured Query Language(結(jié)構(gòu)化查詢語言)的縮寫。SQL是專為數(shù)據(jù)庫而建立的操作命令集,是一種功能齊全的數(shù)據(jù)庫語言。在使用它時,只需要發(fā)出“做什么”的命令,“怎么做”是不用使用者考慮的。,21,SQL語法組成,DML( Data Manipulation Language數(shù)據(jù)操作語言) 查詢、插入、刪除和修改數(shù)據(jù)庫中的數(shù)據(jù); SELECT、INSERT、 UPDATE 、DELETE等; DCL( Data Control Langu

7、age數(shù)據(jù)控制語言) 用來控制存取許可、存取權(quán)限等; GRANT、REVOKE 等; DDL( Data Definition Language數(shù)據(jù)定義語言) 用來建立數(shù)據(jù)庫、數(shù)據(jù)庫對象和定義其列 CREATE TABLE 、DROP TABLE、ALTER TABLE 等 功能函數(shù) 日期函數(shù)、數(shù)學(xué)函數(shù)、字符函數(shù)、系統(tǒng)函數(shù)等,22,MySQL中使用SQL語言幾點(diǎn)說明,屬于一個SQL語句,使用分號(;)結(jié)尾,否則mysql認(rèn)為語句沒有輸入完。 箭頭(-)代表SQL語句沒有輸入完 取消SQL語句使用(c) SQL語句關(guān)鍵字和函數(shù)名不區(qū)分大小寫(Linux區(qū)分,Windows不區(qū)分) 使用函數(shù)時,函

8、數(shù)名和后面的括號之間不能有空格,23,MySQL數(shù)據(jù)類型,數(shù)據(jù)類型種類 數(shù)值列類型 字符串列類型 日期和時間列類型,24,數(shù)據(jù)類型種類,數(shù)值型 分為整型和浮點(diǎn)型 整型: 可以由十進(jìn)制和十六進(jìn)制表示 整數(shù)由數(shù)字序列組成,如:1,100。 由十六進(jìn)制表示方法:0 x且后面加19和AF 的任意數(shù)字或字母,并且0 x中的X不能大寫。 浮點(diǎn)型: 浮點(diǎn)數(shù)由一個數(shù)字加一個小數(shù)點(diǎn)再加上一個數(shù)字組成。兩個數(shù)字序列不能同時為空。,25,日期和時間值 是存儲如“2005 -1-1” 或者“12:00:00”這樣的數(shù)值的值。在MySQL中日期是按”年-月-日”的順序。 NULL值 是一種無類型的值,表示“空,什么也沒

9、有”。,26,數(shù)值列類型,MySQL為除了NULL值外的所有通用數(shù)據(jù)類型提供了列類型。列類型是一種手段,通過這種手段可以描述表的列可以包含什么樣類型的值。 數(shù)值列類型 所有數(shù)值列類型的類型名及其說明和所占的字節(jié)數(shù)見下表:,27,數(shù)值列的完整性約束,AUTO_INCREMENT 自動標(biāo)識列,在需要產(chǎn)生唯一標(biāo)志符號或者順序值時候,可用此屬性。值一般從1開始,每行增加1,在插入NULL到一個AUTO_INCREMENT列時,MySQL會插入一個比該列中當(dāng)前最大值大1 的值,一個表中最多能有一個有此屬性的列。對于想使用此屬性的列應(yīng)該定義為NOT NULL,并定義為PRIMARY KEY 或者定義為UN

10、IQUE鍵。,28,NULL和NOT NULL 默認(rèn)為NULL,即插入值時沒有在此字段插入值時自動填NULL,如果指定了NOT NULL,則必須在插入值時在此字段添入值,不允許插入NULL值。,29,字符串,字符串列類型 所有字符串列類型及其說明和所占的字節(jié)數(shù)見下表:,30,CHAR和VARCHAR類型,CHAR類型和VARCHAR類型長度范圍都是0255之間的大小。他們之間的差別在于MySQL處理存儲的方式: CHAR把這個大小視為值的準(zhǔn)確大小(用空格填補(bǔ)比較短的值)。 VARCHAR類型把它視為最大值并且只使用了存儲字符串實(shí)際上需要的字節(jié)數(shù)(增加了一個額外的字節(jié)記錄長度)。因而,較短的值當(dāng)

11、被插入一個語句為VARCHAR類型的字段時,將不會用空格填補(bǔ)(然而,較長的值仍然被截短 )。,31,BLOB和TEXT類型,BLOB是二進(jìn)制大對象,如果想存儲二進(jìn)制數(shù)BLOB將是最佳選擇,而TEXT與之相同,只是BOLOB按照二進(jìn)制編碼排序(區(qū)分大小寫),TEXT按照字符文本模式排序(不區(qū)分大小寫)。 ENUM 和SET類型 是特殊的串類型,其列值必須從固定的串集中選擇,二者差別為前者必須是只能選擇其中的一個值,而后者可以多選。(不推薦使用),32,日期和時間列類型,所有時間和日期列類型的類型名及其說明和所占的字節(jié)數(shù)見下表:,33,34,說明: 每個時間和日期列類型都有一個零值,當(dāng)插入非法數(shù)值

12、時就用零值來添加 表示日期時必須先按:年,月,日的順序給出 DATE ,TIME ,DATETIME分別是存儲日期,時間與日期和時間的組合,其格式為“YYYY-MM-DD”,“hh:mm:ss”和“YYYY-MM-DD hh:mm:ss”,對于DATETIME類型,日期和時間部分都需要 TIMESTAMP 時間戳列類型以YYYYMMDDhhmmss的格式來表示值,其取值范圍是19700101000000到2037年的某個時間,主要用于記錄更改或創(chuàng)建某個記錄,35,總結(jié):常用數(shù)據(jù)類型,36,創(chuàng)建數(shù)據(jù)庫,建立數(shù)據(jù)庫操作: 語法:create database 數(shù)據(jù)庫名 敘述:創(chuàng)建一個具有指定名稱的

13、數(shù)據(jù)庫。如果要創(chuàng)建的數(shù)據(jù)庫已經(jīng)存在,或者沒有創(chuàng)建它的適當(dāng)權(quán)限,則此語句失敗。 例:建立一個student庫。 mysql create database student;,37,mysql數(shù)據(jù)庫備份及恢復(fù)命令mysqldump,source的用法,還原一個數(shù)據(jù)庫: mysql -h localhost -u root -p123456 數(shù)據(jù)庫名 數(shù)據(jù)庫所在路徑(d:數(shù)據(jù)庫.sql),38,備份MySQL數(shù)據(jù)庫的命令,mysqldump -hhostname -uusername -ppassword databasename backupfile.sql,39,直接將MySQL數(shù)據(jù)庫壓縮備份

14、mysqldump -hhostname -uusername -ppassword databasename | gzip backupfile.sql.gz 備份MySQL數(shù)據(jù)庫某個(些)表 mysqldump -hhostname -uusername -ppassword databasename specific_table1 specific_table2 backupfile.sql,40,同時備份多個MySQL數(shù)據(jù)庫 mysqldump -hhostname -uusername -ppassword databases databasename1 databasename2

15、databasename3 multibackupfile.sql 僅僅備份數(shù)據(jù)庫結(jié)構(gòu) mysqldump no-data databases databasename1 databasename2 databasename3 structurebackupfile.sql 備份服務(wù)器上所有數(shù)據(jù)庫 mysqldump all-databases allbackupfile.sql,41,還原MySQL數(shù)據(jù)庫的命令 mysql -hhostname -uusername -ppassword databasename backupfile.sql 還原壓縮的MySQL數(shù)據(jù)庫 gunzip bac

16、kupfile.sql.gz | mysql -uusername -ppassword databasename 將數(shù)據(jù)庫轉(zhuǎn)移到新服務(wù)器 mysqldump -uusername -ppassword databasename | mysql host=*.*.*.* -C databasename,42,幾個常用用例:,1.導(dǎo)出整個數(shù)據(jù)庫 mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 導(dǎo)出的文件名 mysqldump -u root -p dataname dataname.sql 這個時候會提示要你輸入root用戶名的密碼,輸入密碼后dataname數(shù)據(jù)庫就成功備份在mysql/bi

17、n/目錄中. 2.導(dǎo)出一個表 mysqldump -u 用戶名 -p 數(shù)據(jù)庫名 表名 導(dǎo)出的文件名 mysqldump -u root -p dataname users dataname_users.sql 3.導(dǎo)出一個數(shù)據(jù)庫結(jié)構(gòu) mysqldump -u wcnc -p -d add-drop-table smgp_apps_wcnc d:wcnc_db.sql -d 沒有數(shù)據(jù) add-drop-table 在每個create語句之前增加一個drop table,43,4.導(dǎo)入數(shù)據(jù)庫 常用source 命令 進(jìn)入mysql數(shù)據(jù)庫控制臺, 如mysql -u root -p mysqluse

18、 數(shù)據(jù)庫 然后使用source命令,后面參數(shù)為腳本文件(如這里用到的.sql) mysqlsource d:wcnc_db.sql,44,創(chuàng)建表,建立表操作: 語法:create table 表名( 列名1 列類型 , 列名2 列類型 , . . ); 敘 述:在當(dāng)前數(shù)據(jù)庫下新創(chuàng)建一個數(shù)據(jù)表。 列類型:表示該列的數(shù)據(jù)類型。 例: 建立一個表school,其由兩列組成,第一列屬性為非空,并做為主鍵,并自增 create table school( school_id int(10) not null auto_increment primary key, school_name varchar(

19、20) );,45,常見完整性約束:,PRIMARY KEY 主碼約束(主鍵) UNIQUE唯一性約束 NOT NULL非空值約束 AUTO_INCREMENT用于整數(shù)列默認(rèn)自增1 UNSIGNED 無符號整數(shù) DEFAULT default_value默認(rèn)值約束 DEFAULT cur_timestamp 創(chuàng)建新記錄時默認(rèn)保存當(dāng)前時間(僅適用timestamp數(shù)據(jù)列) ON UPDATE cur_timestamp 修改記錄時默認(rèn)保存當(dāng)前時間(僅適用timestamp數(shù)據(jù)列) CHARACTER SET name 指定字符集(僅適用字符串),46,主鍵與外鍵,數(shù)據(jù)表之間的關(guān)聯(lián)/引用關(guān)系是依靠

20、具體的主鍵(primary key)和外鍵(foreign key)建立起來的。 主鍵:幫助MySQL以最快的速度把一條特點(diǎn)的數(shù)據(jù)記錄的位置確定下來。 主鍵必須是唯一的 主鍵應(yīng)該是緊湊的,因此整數(shù)類型比較適合 外鍵:引用另外一個數(shù)據(jù)表的某條記錄。 外鍵列類型盡可能與主鍵列類型保持一致 外鍵列應(yīng)該加上NOT NULL,47,主鍵 create table student( sid int not null auto_increment, name varchar(20) not null, primary key(sid) ); 外鍵(自動檢查外鍵是否匹配,僅適用InnoDB) create t

21、able score( cid int not null auto_increment primary key, score int, sid int, foreign key(sid) references student(sid) );,48,主表和從表,1、當(dāng)主表中沒有對應(yīng)的記錄時,不能將記錄添加到子表 成績表中不能出現(xiàn)在學(xué)員信息表中不存在的學(xué)號; 2、不能更改主表中的值而導(dǎo)致子表中的記錄孤立 把學(xué)員信息表中的學(xué)號改變了,學(xué)員成績表中的學(xué)號也應(yīng)當(dāng)隨之改變; 3、子表存在與主表對應(yīng)的記錄,不能從主表中刪除該行 不能把有成績的學(xué)員刪除了 4、刪除主表前,先刪子表 先刪學(xué)員成績表、后刪除學(xué)員信

22、息表,49,刪除數(shù)據(jù)庫或表操作,刪除表操作 語法:drop table if exists tab_name ,tab_name. 敘述:從數(shù)據(jù)庫中刪除給定的表。如果給出if exists 子句,則刪除不存在的表不會出錯。 刪除數(shù)據(jù)庫操作 語法:drop database if exists db_name 敘述:刪除給定的數(shù)據(jù)庫。在刪除一個數(shù)據(jù)庫后,它就永遠(yuǎn)沒有了,因此要特別小心。如果給出if exists 子句,則刪除不存在的數(shù)據(jù)庫不會出錯。,50,插入記錄操作,語法: 敘述: 如果表名后面沒寫字段名,則默認(rèn)是向所有的字段添加值,另外字符串值應(yīng)該用 或“ ”引號括起來 舉例1:向peopl

23、e表中添加一條記錄: insert into people(name,age) values(“zhangsan”,20);,INSERT INTO 列名 VALUES ,51,插入案例,創(chuàng)建一張學(xué)生信息表,往表中插入數(shù)據(jù) create table students( scode int not null auto_increment, sname varchar(20) not null, saddress varchar(20) default未知, sgrade int, semail varchar(20), ssex bit, primary key(scode) );,52,插入數(shù)

24、據(jù)行 1,注意事項1:每次插入一行數(shù)據(jù),不可能只插入半行或者幾列數(shù)據(jù),因此,插入的數(shù)據(jù)是否有效將按照整行的完整性的要求來檢驗;,53,插入數(shù)據(jù)行 2,注意事項2:每個數(shù)據(jù)值的數(shù)據(jù)類型、精度和小數(shù)位數(shù)必須與相應(yīng)的列匹配;,54,插入數(shù)據(jù)行3,注意事項4:如果在設(shè)計表的時候就指定了某列不允許為空,則必須插入數(shù)據(jù);,55,插入數(shù)據(jù)行4,注意事項6:具有缺省值的列,可以使用DEFAULT(缺?。╆P(guān)鍵字來代替插入的數(shù)值,INSERT INTO Students (SName,SAddress,SGrade,SEmail,SSEX) VALUES (張青裁,DEFAULT,6,ZQCS,0),56,插入多

25、行數(shù)據(jù),INSERT INTO (列名) VALUES(), (), () ,57,更改記錄操作,語法: 敘述: where 子句是判斷語句,用來設(shè)定條件,限制只更新匹配的行,如果不帶where子句,則更新所有行數(shù)據(jù)。 舉例: 將student表中的所有學(xué)生名稱為Alex的改為Tom: update student set sname=Tom where sname=Alex;,UPDATE SET WHERE ,58,更新數(shù)據(jù)行,59,刪除記錄操作,語法: 敘述:此語句刪除表中的行,如果不帶where子句,則刪除整個表中的記錄,但是表不被刪除。 舉例: 刪除student表中的所有年齡小于1

26、8歲的記錄: delete from student where sage18;,DELETE FROM WHERE ,60,補(bǔ)充說明,刪除學(xué)生編號為95005的學(xué)生信息包括成績信息 delete from student,sc using student,sc where student.sno = sc.studentid and student.sno=95005; 說明: 表和字段的引用方式有兩種:絕對引用和相對引用 絕對引用:數(shù)據(jù)庫名.表名(.字段名) 相對引用:表名.(字段名),61,刪除數(shù)據(jù)行,62,什么是查詢?,SELECT * FROM SALES,客戶程序,SQL SERVER,查詢產(chǎn)生一個虛擬表,看到的是表形式顯示的結(jié)果,但結(jié)果并不真正存儲,每次執(zhí)行查詢只是現(xiàn)從數(shù)據(jù)表中提取數(shù)據(jù),并按照表的形式顯示出來,63,查詢記錄操作,from子句:指定查詢數(shù)據(jù)的表 where子句:查詢數(shù)據(jù)的過濾條件 group by子句:對匹配where子句的查詢結(jié)果進(jìn)行分組 having子句:對分組后的結(jié)果進(jìn)行條件限制 order by子句:對查詢結(jié)果結(jié)果

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論