版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 沙灘節(jié)目活動策劃方案(3篇)
- 健身全年活動方案策劃(3篇)
- 三八送花策劃活動方案(3篇)
- 鄒城啤酒活動方案策劃(3篇)
- 壅水壩施工方案(3篇)
- 2025年市場調(diào)查與分析應(yīng)用指南
- 水仙組織培養(yǎng)方案
- 團(tuán)建游戲活動策劃方案
- 2025年中職服裝設(shè)計與工藝(服裝設(shè)計)試題及答案
- 2025年高職民俗學(xué)(民俗研究)試題及答案
- 2025年九年級上學(xué)期期末英語試卷及答案(共三套)
- 2025年福建會考政治試卷及答案
- DB31∕T 1450-2023 旅游碼頭服務(wù)基本要求
- 2024-2025學(xué)年人教版數(shù)學(xué)七年級上學(xué)期期末考試測試卷
- 南寧陳教練2026年版考試大綱廣西專升本與職教高考(財經(jīng)商貿(mào)大類)考試大綱對比分析及備考攻略
- 滅菌物品裝載課件
- 2025至2030中國電力設(shè)備檢測行業(yè)項目調(diào)研及市場前景預(yù)測評估報告
- 2025上半年軟考系統(tǒng)架構(gòu)設(shè)計師考試真題及答案
- 政務(wù)信息化統(tǒng)一建設(shè)項目監(jiān)理服務(wù)方案投標(biāo)文件(技術(shù)方案)
- 2025年蘇州市事業(yè)單位招聘考試教師招聘體育學(xué)科專業(yè)知識試卷
- 加油站投訴處理培訓(xùn)課件
評論
0/150
提交評論