




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第3章MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)主要內(nèi)容:MySQL數(shù)據(jù)庫(kù)基本知識(shí)數(shù)據(jù)庫(kù)模型概念數(shù)據(jù)庫(kù)服務(wù)器管理用戶的方法MySQL數(shù)據(jù)庫(kù)、數(shù)據(jù)表維護(hù)管理方法phpMyAdmin軟件的使用方法3.1MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)概述3.1.1MySQL數(shù)據(jù)庫(kù)的術(shù)語(yǔ)1.MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)的特點(diǎn)(1)采用客戶機(jī)/服務(wù)器模式,支持多用戶、多線程、互聯(lián)網(wǎng)操作,可以實(shí)時(shí)處理和共享數(shù)據(jù)。(2)MySQL軟件,由數(shù)據(jù)庫(kù)管理員創(chuàng)建用戶,包括設(shè)置用戶名、密碼、與授權(quán)。(3)數(shù)據(jù)類型豐富,字符、數(shù)值、日期、多媒體(4)占用資源少、運(yùn)行效率高(5)MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)軟件免費(fèi)文件/服務(wù)器(File/Server)模式客戶機(jī)/服務(wù)器(Client/Server)模式3.1.1MySQL數(shù)據(jù)庫(kù)的術(shù)語(yǔ)2.MySQL操作模式(1)命令操作界面打開命令操作界面,單擊“開始”–“運(yùn)行”輸入“mysql–uroot–p123456”,顯示mysql>(2)圖形操作界面打開瀏覽器IE在地址欄輸入http://nbxp/phpmyadmin進(jìn)入MySQL圖形操作界面3.數(shù)據(jù)庫(kù)服務(wù)器安裝有數(shù)據(jù)庫(kù)管理系統(tǒng)的計(jì)算機(jī)服務(wù)器。管理方式:支持客戶機(jī)/服務(wù)器(C/S)主要職責(zé):管理數(shù)據(jù)庫(kù)用戶、維護(hù)數(shù)據(jù)庫(kù)和數(shù)據(jù)表文件4.數(shù)據(jù)庫(kù)用戶被授權(quán)允許使用數(shù)據(jù)庫(kù)、數(shù)據(jù)表的人員。數(shù)據(jù)庫(kù)管理員:id=root,pwd=123456職責(zé),維護(hù)用戶賬號(hào)、維護(hù)數(shù)據(jù)庫(kù)和數(shù)據(jù)表普通用戶:由數(shù)據(jù)庫(kù)管理員創(chuàng)建用戶賬號(hào),并授權(quán)維護(hù)數(shù)據(jù)庫(kù),數(shù)據(jù)表。5.數(shù)據(jù)模型是計(jì)算機(jī)組織數(shù)據(jù)需要遵守的規(guī)范。層次型、網(wǎng)狀型和關(guān)系型。一個(gè)關(guān)系對(duì)應(yīng)一個(gè)二維的數(shù)據(jù)表(文件)。關(guān)系數(shù)據(jù)庫(kù)則是管理數(shù)據(jù)表的文件。MySQL數(shù)據(jù)模型由數(shù)據(jù)庫(kù)文件與數(shù)據(jù)表文件構(gòu)成。數(shù)據(jù)庫(kù)文件:用于管理數(shù)據(jù)表構(gòu)成信息的文件,數(shù)據(jù)庫(kù)文件名唯一(不重復(fù))。數(shù)據(jù)表文件:用于管理數(shù)據(jù)記錄的文件,數(shù)據(jù)表文件名唯一(不重復(fù))。數(shù)據(jù)表由,數(shù)據(jù)表文件名+數(shù)據(jù)表結(jié)構(gòu)+數(shù)據(jù)記錄構(gòu)成。關(guān)系數(shù)據(jù)庫(kù)的基本概念表:表名、列名和數(shù)據(jù)行組成。列:也稱作字段,域,屬性。行:也稱記錄。值:表中行與列的交匯處,即存儲(chǔ)的數(shù)據(jù)。表名與列名的命名規(guī)則:表名在數(shù)據(jù)庫(kù)中唯一,列名在表中唯一。學(xué)生基本情況表上一張下一張表和表之間的關(guān)系一對(duì)多的關(guān)系:兩個(gè)表之間的關(guān)系一對(duì)多學(xué)生基本情況表專業(yè)代碼表上一張下一張表和表之間的關(guān)系一對(duì)一的關(guān)系:兩個(gè)表之間的關(guān)系一對(duì)一。學(xué)生基本情況表學(xué)生成績(jī)單表上一張下一張6.數(shù)據(jù)類型指數(shù)據(jù)分類類別:字符型(姓名,職稱,地址)數(shù)值型(工資,成績(jī),數(shù)量)可以進(jìn)行運(yùn)算日期型(出生日期,畢業(yè)時(shí)間)邏輯型(只有兩種狀態(tài),邏輯真和邏輯假)7.MySQL的數(shù)據(jù)存儲(chǔ)結(jié)構(gòu)MySQL數(shù)據(jù)庫(kù)管理系統(tǒng)保存在“C:/AppServ/MySQL”系統(tǒng)數(shù)據(jù)庫(kù)MySQL,用戶創(chuàng)建的應(yīng)用數(shù)據(jù)庫(kù)bookstore保存在“C:/AppServ/MySQL/Data”3.1.2案例說(shuō)明網(wǎng)絡(luò)圖書銷售信息管理系統(tǒng)創(chuàng)建一個(gè)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)文件名:bookstore在數(shù)據(jù)庫(kù)中創(chuàng)建三張數(shù)據(jù)表,數(shù)據(jù)表文件名分別是book(圖書情況表)、member(會(huì)員情況表)、sell(銷售情況表)3.2網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的數(shù)據(jù)模型3.2.1數(shù)據(jù)類型指數(shù)據(jù)分類類別和型式。在一次運(yùn)算過(guò)程中運(yùn)算對(duì)象的類型必須一致(相同)。常見的類型:字符型,字母、漢字、數(shù)字符號(hào)、特殊符號(hào)數(shù)值型,整數(shù)和小數(shù)日期時(shí)間型,具有特定格式的數(shù)據(jù)邏輯型(布爾型),邏輯真True,邏輯假False1.字符串類型的數(shù)據(jù)(1)char:定長(zhǎng)字符串類型,范圍0–255例:namechar(8),固定8個(gè)字節(jié)。name=“劉華”實(shí)際占用8字節(jié)“劉華____”(2)varchar:變長(zhǎng)字符串類型,范圍0–255例:namevarchar(8),不超過(guò)8個(gè)字節(jié)。name=“劉華”實(shí)際占用5字節(jié)“劉華_”(3)text:變長(zhǎng)文本類型的字符數(shù)據(jù)范圍0-65535(4)blob:變長(zhǎng)(二進(jìn)制形式)長(zhǎng)文本數(shù)據(jù)范圍0-655352.數(shù)值類型的數(shù)據(jù)(1)int:整型數(shù)據(jù),范圍0–4字節(jié),-2147483648–+2147483647(2)float:浮點(diǎn)型數(shù)據(jù),包括整數(shù)和小數(shù)3.日期時(shí)間類型數(shù)據(jù)按照特定的日期格式和時(shí)間格式表示數(shù)據(jù)(1)date:表示日期,格式y(tǒng)yyy-mm-dd(2)time:表示時(shí)間,格式hh:mm:ss(3)datetime:表示日期時(shí)間,格式y(tǒng)yyy-mm-sshh:mm:ss3.2網(wǎng)絡(luò)數(shù)據(jù)庫(kù)的數(shù)據(jù)模型3.2.2數(shù)據(jù)庫(kù)是相關(guān)數(shù)據(jù)表的集合。數(shù)據(jù)庫(kù)文件名唯一。3.2.3數(shù)據(jù)表是相關(guān)數(shù)據(jù)記錄的集合。數(shù)據(jù)表文件名唯一。一個(gè)數(shù)據(jù)表:表文件名+數(shù)據(jù)表結(jié)構(gòu)+數(shù)據(jù)記錄。3.3MySQL服務(wù)器用戶管理每一個(gè)使用MySQL數(shù)據(jù)庫(kù)的用戶必須擁有一個(gè)合法的賬號(hào)(包括用戶名,用戶密碼)和相應(yīng)的權(quán)限。MySQL數(shù)據(jù)庫(kù)管理員賬號(hào),用戶名為root,用戶密碼為123456(在安裝過(guò)程中設(shè)置的密碼,可以隨時(shí)修改)。普通用戶的賬號(hào)和權(quán)限必須由數(shù)據(jù)庫(kù)管理員創(chuàng)建和授權(quán)。3.3.1登錄MySQL服務(wù)器使用數(shù)據(jù)庫(kù)管理員的賬號(hào)登錄,用戶名root,用戶密碼123456。方法一,使用命令行方式登錄單擊“開始”–“所有程序”–“AppServ”–“MySQLcommandlineclient”輸入密碼123456。出現(xiàn)mysql>登錄成功密碼123456Mysql>提示符3.3.1登錄MySQL服務(wù)器方法二使用“運(yùn)行”登錄MySQL服務(wù)器。單擊“開始”–“運(yùn)行”命令格式:mysql–u<用戶名>-p<用戶密碼>用戶名root用戶密碼123456MySQL命令格式命令關(guān)鍵詞<選項(xiàng)>;分號(hào)表示命令結(jié)束并提交1)打開數(shù)據(jù)庫(kù)Use<數(shù)據(jù)庫(kù)名>;例:usemysql;打開mysql數(shù)據(jù)庫(kù)2)增加新用戶的賬號(hào)到mysql數(shù)據(jù)庫(kù)user表Insertinto數(shù)據(jù)表名(主機(jī)名,用戶名,用戶密碼,權(quán)限1,權(quán)限2,…)values(主機(jī)名值,用戶名值,用戶密碼值,權(quán)限1值,權(quán)限2值,…);3)激活數(shù)據(jù)Flushprivileges;3.3.2MySQL服務(wù)器的用戶管理MySQL服務(wù)器中內(nèi)置系統(tǒng)數(shù)據(jù)庫(kù),數(shù)據(jù)庫(kù)名為mysql,數(shù)據(jù)庫(kù)中內(nèi)置數(shù)據(jù)表,數(shù)據(jù)表名為user。只能由數(shù)據(jù)庫(kù)管理員(root,123456)對(duì)用戶賬號(hào)進(jìn)行維護(hù),增加新用戶、修改用戶密碼、刪除用戶賬號(hào)、用戶賬號(hào)授權(quán)。使用root、123456登錄mysql數(shù)據(jù)庫(kù)管理系統(tǒng)。進(jìn)入mysql>提示符User數(shù)據(jù)表中保存所有授權(quán)用戶(允許使用mysql數(shù)據(jù)庫(kù)的用戶)的用戶名、用戶密碼以及用戶權(quán)限表1/2。User數(shù)據(jù)表中保存所有授權(quán)用戶(允許使用mysql數(shù)據(jù)庫(kù)的用戶)的用戶名、用戶密碼以及用戶權(quán)限表2/2。1.增加新的用戶創(chuàng)建新的用戶賬號(hào)包括用戶名、用戶密碼、用戶權(quán)限。打開mysql數(shù)據(jù)庫(kù)插入新的用戶賬號(hào)數(shù)據(jù)到user數(shù)據(jù)表激活新創(chuàng)建的用戶賬號(hào)命令格式:mysql>usemysql;mysql>insert
intomysql.user(主機(jī)名稱,用戶名稱,用戶密碼,權(quán)限1,權(quán)限2,…)
values(host,user,password,select_priv,…);mysql>flush
privileges;增加用戶例題bookuser,111111用戶名bookuser,用戶密碼111111,擁有select,insert,update,delete,create,drop權(quán)限。mysql>usemysql;mysql>insert
intomysql.user(host,user,password,select_priv,insert_priv,update_priv,delete_privi,create_priv,drop_priv)values
(‘localhost’,’bookuser’,password(‘111111’),’y’,’y’,’y’,’y’,’y’,’y’);mysql>flush
privileges;增加用戶例題booktest,333333用戶名booktest,用戶密碼333333,擁有select,insert,update,delete,create,drop,index,alter權(quán)限。mysql>usemysql;mysql>insert
intomysql.user(host,user,password,select_priv,insert_priv,update_priv,delete_privi,create_priv,drop_priv,index_priv,alter_priv)values
(‘localhost’,’booktest’,password(‘333333’),’y’,’y’,’y’,’y’,’y’,’y’,’y’,’y’);mysql>flush
privileges;2.修改用戶權(quán)限命令格式:update<表名>set[權(quán)限參數(shù)名稱=權(quán)限值]where<條件>;mysql>usemysql;mysql>updatemysql.userset權(quán)限名1=權(quán)限值1,權(quán)限名2=權(quán)限值2where<條件>;mysql>flush
privileges;修改權(quán)限例題修改bookuser用戶的index_priv和alter_priv為’y’mysql>usemysql;mysql>updatemysql.userset
index_priv=‘y’,alter_priv=‘y’whereuser=‘bookuser’;mysql>flush
privileges;修改用戶密碼命令格式:update<表名>
setpassword=password(新密碼)where<條件>;mysql>usemysql;mysql>updatemysql.usersetpassword=password(新密碼)where<條件>;mysql>flush
privileges;修改用戶密碼例題修改bookuser用戶的密碼111111為222222mysql>usemysql;mysql>updatemysql.usersetpassword=password(“222222”)
whereuser=“bookuser”;mysql>flush
privileges;3.刪除用戶賬號(hào)命令格式:deletefrom<表名>where<條件>mysql>usemysql;mysql>delete
frommysql.userwhere<條件>;mysql>flush
privileges;刪除用戶賬號(hào)例題刪除booktest用戶賬號(hào)mysql>usemysql;mysql>delete
frommysql.userwhereuser=‘bookuser’;mysql>flush
privileges;3.4MySQL數(shù)據(jù)管理維護(hù)數(shù)據(jù)庫(kù):顯示數(shù)據(jù)庫(kù),建立數(shù)據(jù)庫(kù),刪除數(shù)據(jù)庫(kù),打開數(shù)據(jù)庫(kù)。維護(hù)數(shù)據(jù)表:建立數(shù)據(jù)表,顯示數(shù)據(jù)表文件名,顯示數(shù)據(jù)表結(jié)構(gòu),修改數(shù)據(jù)表結(jié)構(gòu),刪除數(shù)據(jù)表文件,更換數(shù)據(jù)表名。維護(hù)數(shù)據(jù)表的數(shù)據(jù)(記錄):增加記錄,刪除記錄,修改記錄,選取記錄3.4.1維護(hù)MySQL數(shù)據(jù)庫(kù)1.顯示數(shù)據(jù)庫(kù)(MySQL數(shù)據(jù)庫(kù)是系統(tǒng)數(shù)據(jù)庫(kù))顯示當(dāng)前服務(wù)器中所有的數(shù)據(jù)庫(kù)。命令格式:showdatabases;是系統(tǒng)數(shù)據(jù)庫(kù)3.4.1維護(hù)MySQL數(shù)據(jù)庫(kù)2.建立數(shù)據(jù)庫(kù)在當(dāng)前服務(wù)器中創(chuàng)建一個(gè)新的數(shù)據(jù)庫(kù)。命令格式:createdatabase<數(shù)據(jù)庫(kù)文件名>;例題:創(chuàng)建一個(gè)叫dbtest的數(shù)據(jù)庫(kù)。mysql>show
databases;查詢存在的數(shù)據(jù)庫(kù)mysql>create
databasedbtest;dbtest數(shù)據(jù)庫(kù)的位置。C:/AppServ/MySQL/data/dbtestmysql>show
databases;查詢存在的數(shù)據(jù)庫(kù)3.4.1維護(hù)MySQL數(shù)據(jù)庫(kù)3.刪除數(shù)據(jù)庫(kù)刪除當(dāng)前服務(wù)器中的一個(gè)數(shù)據(jù)庫(kù)。命令格式:dropdatabase<數(shù)據(jù)庫(kù)文件名>;例題:創(chuàng)建一個(gè)叫dbtest的數(shù)據(jù)庫(kù)。mysql>show
databases;查詢存在的數(shù)據(jù)庫(kù)mysql>drop
databasedbtest;mysql>show
databases;查詢存在的數(shù)據(jù)庫(kù)3.4.1維護(hù)MySQL數(shù)據(jù)庫(kù)4.打開數(shù)據(jù)庫(kù)打開當(dāng)前服務(wù)器中的一個(gè)數(shù)據(jù)庫(kù)。命令格式:use<數(shù)據(jù)庫(kù)文件名>;例題:打開bookstore數(shù)據(jù)庫(kù)。mysql>usebookstore;打開bookstore數(shù)據(jù)庫(kù)3.4.2維護(hù)MySQL數(shù)據(jù)表數(shù)據(jù)表=數(shù)據(jù)表名、數(shù)據(jù)表結(jié)構(gòu)、數(shù)據(jù)記錄。指定數(shù)據(jù)表名定義數(shù)據(jù)表結(jié)構(gòu)(字段名、字段類型、寬度、輔助項(xiàng))數(shù)據(jù)表維護(hù)工作:1.創(chuàng)建一個(gè)新的數(shù)據(jù)表、2.顯示存在的數(shù)據(jù)表、3.顯示一個(gè)數(shù)據(jù)表的結(jié)構(gòu)、4.修改數(shù)據(jù)表結(jié)構(gòu)、5.刪除數(shù)據(jù)表、6.更換數(shù)據(jù)表名。3.4.2維護(hù)MySQL數(shù)據(jù)表1.建立新的數(shù)據(jù)表,定義表文件名、字段名、字段類型、字段寬度、設(shè)置字段屬性。命令格式:createtable<數(shù)據(jù)表名>(<字段1定義>,<字段2定義>,…<字段n定義>);字段i定義內(nèi)容:字段名,類型,寬度,非空修飾符,default修飾符,auto_increment修飾符。
create字段約束
NULL和NOTNULL修飾符:NULL允許該字段為空值,NOTNULL該字段不允許為空值。DEFAULT修飾符:在插入記錄時(shí)自動(dòng)插入一個(gè)默認(rèn)值。AUTO_INCREMENT修飾符:只適用于INT類型字段,是步長(zhǎng)為一的自動(dòng)增量修飾。例題:建立數(shù)據(jù)表(members)數(shù)據(jù)表名:members字段名字段類型寬度說(shuō)明身份證號(hào) char18字符非NULL會(huì)員姓名char10字符非NULL會(huì)員密碼char6字符非NULL聯(lián)系電話varchar20字符非NULL注冊(cè)時(shí)間datetime日期時(shí)間非NULL創(chuàng)建數(shù)據(jù)表方法一:命令行方法單擊“開始”–“所有程序”–“AppServ”–“MySQLCommandLineClient”mysql>usebookstore;mysql>create
tablemembers(->身份證號(hào)char(18),->會(huì)員密碼char(6),->會(huì)員姓名char(10),->聯(lián)系電話varchar(20),->注冊(cè)時(shí)間datetime
->);逗號(hào)不能省綠色括號(hào)一對(duì)分號(hào)提交命令此處沒(méi)有逗號(hào)創(chuàng)建數(shù)據(jù)表方法二:批處理方法將創(chuàng)建數(shù)據(jù)表的命令寫入一個(gè)文本文件,擴(kuò)展名為sql。創(chuàng)建批處理文件,用記事本編輯一個(gè)mysql批處理文件。文件名為:mysql_create_members.sql文件位置:c:\appserv\mysql\data文件內(nèi)容(藍(lán)色部分):usebookstore;droptableifexistsmembers;createtablemembers(
身份證號(hào)char(18)notnull,
會(huì)員密碼char(6)notnull,
會(huì)員姓名char(10)notnull,
聯(lián)系電話varchar(20)notnull,
注冊(cè)時(shí)間datetime);運(yùn)行批處理文件,在mysql命令行窗口輸入按以下格式輸入命令sourcemysql>source
c:\appserv\mysql\data\mysql_create_members.sql再編輯一個(gè)批處理文件c:\AppServ\MySQL\data\bookstore_create_tables.sql該文件創(chuàng)建book、member、sell三個(gè)數(shù)據(jù)表,數(shù)據(jù)表結(jié)構(gòu)見p33-p34分號(hào)結(jié)束命令豆號(hào)不能省略如果members數(shù)據(jù)表存在就將它刪除打開bookstore數(shù)據(jù)庫(kù)創(chuàng)建數(shù)據(jù)表修飾符的使用創(chuàng)建testmbs數(shù)據(jù)表使用修飾符。createtestmbs(idint(6)notnullauto_increment,姓名char(8)notnull,性別char(2)notnulldefault‘男’,出生日期datenotnulldefault‘1998-05-16’
);索引索引的作用:提高搜索速度,減少查詢時(shí)間。創(chuàng)建索引(鍵)方式:方式一createtable創(chuàng)建索引createtable<數(shù)據(jù)表>(字段1定義,…字段n定義,index[索引名稱](字段1[,字段2,…]),
unique[索引名稱](字段1[,字段2,…]));方式二create[unique]index添加索引createindex[索引名]on數(shù)據(jù)表(字段1[,字段2]);createuniqueindex[索引名]on數(shù)據(jù)表(字段1[,字段2]);=unique選項(xiàng)不重createtable方式索引例題createtablestudent(學(xué)號(hào)char(8)notnull,姓名char(12)notnull,性別char(2)default‘男’,出生年月datenotnulldefault‘1978-01-08’,專業(yè)char(6)notnulldefault‘100001’,indexstudsp(專業(yè)),uniquestudid(學(xué)號(hào)));createindex方式索引例題createtablestudent(學(xué)號(hào)char(8)notnull,姓名char(12)notnull,性別char(2)notnulldefault‘男’,出生年月datenotnulldefault‘1978-01-08’,專業(yè)char(6)notnulldefault‘100001’);createindexstudsponstudent(專業(yè));create
uniqueindexstudidonstudent(學(xué)號(hào));主鍵主鍵字段值(鍵值)非空且不重,可以多字段組合主鍵,一個(gè)數(shù)據(jù)表中主鍵只能有一個(gè)。創(chuàng)建主鍵方式:方式一createtable創(chuàng)建索引createtable<數(shù)據(jù)表>(字段1定義,…字段n定義,primarykey[索引名稱](字段1[,字段2,…]));添加主鍵方式:方式二altertable添加索引altertable數(shù)據(jù)表addprimarykey[索引名](字段1[,字段2]);createtable方式創(chuàng)建主鍵例題createtablestudent(學(xué)號(hào)char(8)notnull,姓名char(12)notnull,性別char(2)notnulldefault‘男’,出生年月datenotnulldefault‘1978-01-08’,專業(yè)char(6)notnulldefault‘100001’,
primarykeystudxh(學(xué)號(hào)));altertable方式添加主鍵例題createtablestudent(學(xué)號(hào)char(8)notnull,姓名char(12)notnull,性別char(2)notnulldefault‘男’,出生年月datenotnulldefault‘1978-01-08’,專業(yè)char(6)notnulldefault‘100001’);altertablestudentaddprimarykeystudxh(學(xué)號(hào));外鍵通過(guò)外鍵在兩個(gè)數(shù)據(jù)表中建立關(guān)聯(lián),可以是一對(duì)一關(guān)聯(lián),也可以是一對(duì)多關(guān)聯(lián)。該關(guān)聯(lián)在關(guān)聯(lián)表中的數(shù)據(jù)構(gòu)成參照完整性。定義外鍵格式:1.使用index索引項(xiàng)名(索引字段)創(chuàng)建索引。2.使用foreignkey(索引字段)references主鍵數(shù)據(jù)表名(主鍵索引字段)。createtable方式創(chuàng)建外鍵例題createtabletitle(
職稱代碼char(4)notnullprimarykey, 職稱名稱varchar(20)notnull )type=innodb;createtablemembers( 身份證號(hào)char(18) notnull, 性別char(2) notnull, 出生日期date notnull, 工作單位varchar(24) notnull, 單位地址varchar(24) notnull, 郵政編碼char(6) notnull,
職稱代碼char(4) notnull,
primarykey(身份證號(hào)),
index(職稱代碼),
foreignkey(職稱代碼)referencestitle(職稱代碼))type=innodb;altertable方式添加外鍵例題createtabletitle(
職稱代碼char(4)notnullprimarykey, 職稱名稱varchar(20)notnull )type=innodb;createtablemembers( 身份證號(hào)char(18) notnull, 性別char(2) notnull, 出生日期date notnull, 工作單位varchar(24) notnull, 單位地址varchar(24) notnull, 郵政編碼char(6) notnull,
職稱代碼char(4) notnull,
primarykey(身份證號(hào)),
index(職稱代碼))
type=innodb;altertable數(shù)據(jù)表名add
foreignkey(職稱代碼)referencestitle(職稱代碼)ondeletecascadeonupdatecascade;刪除索引,主鍵,外鍵刪除索引命令格式:dropindex索引名稱on數(shù)據(jù)表名;刪除主鍵命令格式:altertable數(shù)據(jù)表名dropprimary
key;刪除外鍵命令格式:altertable數(shù)據(jù)表名dropforeignkey外鍵標(biāo)識(shí);一般情況通過(guò)刪除表實(shí)現(xiàn)刪除外鍵(外鍵標(biāo)識(shí)可以使用“showcreatetable數(shù)據(jù)表名”得到,信息中的constraint選項(xiàng)值)刪除索引、主鍵、外鍵例題createtabletitle(
職稱代碼char(4)notnullprimarykey, 職稱名稱varchar(20)notnull )type=innodb;createtablemembers( 身份證號(hào)char(18) notnull, 性別char(2) notnull, 出生日期date notnull, 工作單位varchar(24) notnull, 單位地址varchar(24) notnull, 郵政編碼char(6) notnull,
職稱代碼char(4) notnull,
primarykey(身份證號(hào)),
index(職稱代碼),
foreignkey(職稱代碼)referencestitle(職稱代碼))type=innodb;刪除索引,主鍵,外鍵例題刪除索引:dropindex索引名稱on數(shù)據(jù)表名;dropindex
職稱代碼
on
members;刪除索引,主鍵,外鍵例題刪除主鍵:altertable數(shù)據(jù)表名dropprimary
key;altertable
members
dropprimarykey;刪除索引,主鍵,外鍵例題刪除外鍵:altertable數(shù)據(jù)表名dropforeignkey外鍵標(biāo)識(shí);altertable
members
dropforeignkey
members_ibfk_1;外鍵標(biāo)識(shí)使用
showcreatetable
members;的constraint得到members_ibfk_1外鍵參照完整性外鍵表外鍵與參照表主鍵建立數(shù)據(jù)關(guān)聯(lián),該關(guān)聯(lián)構(gòu)成表間約束(參照完整性)。外鍵定義中的ondeletecascade約束、onupdatecascade約束。ondeletecascade約束關(guān)聯(lián)表同步刪除。onupdatecascade約束關(guān)聯(lián)表同步更新。外鍵關(guān)聯(lián)例題createtablezctb(zccodechar(4)primarykey,zcnamechar(10))type=innodb;createtablezginfo(zgidchar(8)primarykey,zgnamechar(10),zgzcchar(4),index(zgzc),foreignkey(zgzc)referenceszctb(zccode)ondeletecascadeonupdate
cascade)type=innodb;insertintozctb(zccode,zcname)values(‘0001’,’工程師’);insertintozginfo(zgid,zgname,zgzc)values(‘10000001’,’張華‘,’0001’);selectupdatezctbsetzccode=‘0002’wherezccode=‘0001’;selectdeletefromzctbwherezccode=‘0002’;select3.4.2維護(hù)MySQL數(shù)據(jù)表2.顯示數(shù)據(jù)表名。命令格式:showtables;3.4.2維護(hù)MySQL數(shù)據(jù)表2.例題:顯示bookstore數(shù)據(jù)庫(kù)中的數(shù)據(jù)表。mysql>show
tables;3.4.2維護(hù)MySQL數(shù)據(jù)表3.顯示數(shù)據(jù)表結(jié)構(gòu)。命令格式:describe<數(shù)據(jù)表文件名>;3.4.2維護(hù)MySQL數(shù)據(jù)表3.例題:顯示members數(shù)據(jù)表的結(jié)構(gòu)。mysql>describemembers;3.4.2維護(hù)MySQL數(shù)據(jù)表4.修改數(shù)據(jù)表結(jié)構(gòu)。修改、增加、刪除字段名稱、字段類型⑴修改字段命令格式:altertable數(shù)據(jù)表名change原字段名新字段名
;①修改字段名例題:altertablememberschange性別會(huì)員性別char(2);②修改字段類型例題:altertablememberschange工作單位工作單位char(20);3.4.2維護(hù)MySQL數(shù)據(jù)表4.修改數(shù)據(jù)表結(jié)構(gòu)。修改、增加、刪除字段名稱、字段類型⑵增加字段命令格式:altertable數(shù)據(jù)表名add字段名
字段類型;①增加字段例題:altertablemembersadd單位電話char(12);3.4.2維護(hù)MySQL數(shù)據(jù)表4.修改數(shù)據(jù)表結(jié)構(gòu)。修改、增加、刪除字段名稱、字段類型⑶刪除字段命令格式:altertable數(shù)據(jù)表名drop字段名;①刪除字段例題:altertablemembersdrop單位電話;3.4.2維護(hù)MySQL數(shù)據(jù)表5.刪除數(shù)據(jù)表。命令格式:droptable[ifexists]數(shù)據(jù)表名;①直接刪除數(shù)據(jù)表例題:droptablemembers;刪除members數(shù)據(jù)表②如果數(shù)據(jù)表存在就刪除數(shù)據(jù)表:droptable
ifexistsmembers;如果members數(shù)據(jù)表存在就刪除members數(shù)據(jù)表3.4.2維護(hù)MySQL數(shù)據(jù)表6.更換數(shù)據(jù)表名。命令格式:renametable數(shù)據(jù)表名to新數(shù)據(jù)表名;①更換數(shù)據(jù)表名例題:renametablememberstomembersx;將數(shù)據(jù)表名為members的更換為membersx3.4.3維護(hù)數(shù)據(jù)表記錄1.增加記錄命令格式:insertinto數(shù)據(jù)表名(字段名1,…字段名n)
values(數(shù)值1,…數(shù)值n);字段i順序任意,字段i與數(shù)值i一一對(duì)應(yīng)。①增加記錄例題:insertintomembersx(身份證號(hào),性別,出生日期,工作單位)
values(,’男’,’1978-01-03’,’中國(guó)人民大學(xué)’);注意:增加記錄時(shí)主鍵字段或UNIQUE索引字段不能重復(fù)外鍵字段值在關(guān)聯(lián)表中主鍵值必須已經(jīng)存在3.4.3維護(hù)數(shù)據(jù)表記錄2.刪除記錄命令格式1:刪除數(shù)據(jù)表中全部記錄。deletefrom數(shù)據(jù)表名;①刪除數(shù)據(jù)表中全部記錄例題:deletefrommembersx;命令格式2:刪除數(shù)據(jù)表中符合條件的記錄。deletefrom數(shù)據(jù)表名where條件表達(dá)式②刪除數(shù)據(jù)表中符合條件的記錄例題:deletefrommemberswhere
身份證號(hào)=3.4.3維護(hù)數(shù)據(jù)表記錄3.修改記錄命令格式1:修改數(shù)據(jù)表中全部記錄指定字段的值update<數(shù)據(jù)表名>set<字段名1=數(shù)值1>,…[字段名n=數(shù)值n]字段i順序任意,字段i與數(shù)值i一一對(duì)應(yīng),同時(shí)修改多個(gè)字段時(shí)set只使用一個(gè)。①修改全部記錄指定字段值例題:updatememberset會(huì)員密碼=‘999999’;3.4.3維護(hù)數(shù)據(jù)表記錄3.修改記錄命令格式2:修改數(shù)據(jù)表中符合條件的記錄指定字段的值update<數(shù)據(jù)表名>set<字段名1=數(shù)值1>,…[字段名n=數(shù)值n]where<條件表達(dá)式>①修改身份證號(hào)為的會(huì)員密碼為‘888888’,會(huì)員姓名為‘趙華’例題:updatememberset會(huì)員密碼=‘888888’,會(huì)員姓名=‘趙華’where身份證號(hào)=;3.4.4選取數(shù)據(jù)表記錄1.選取表達(dá)式命令格式命令格式1:選取顯示表達(dá)式表結(jié)果select<表達(dá)式表>表達(dá)式表:獲取顯示表達(dá)式結(jié)果。包括算術(shù)表達(dá)式,比較表達(dá)式,邏輯表達(dá)式。⑴算術(shù)表達(dá)式:運(yùn)算對(duì)象+算術(shù)運(yùn)算符+運(yùn)算對(duì)象算術(shù)運(yùn)算符:+,-,*,/例題:select18+25*4;一個(gè)表達(dá)式slect18+25*4,100/4+5;兩個(gè)表達(dá)式3.4.4選取數(shù)據(jù)表記錄1.選取表達(dá)式命令格式⑵比較表達(dá)式:運(yùn)算對(duì)象+算術(shù)運(yùn)算符+運(yùn)算對(duì)象比較運(yùn)算符:大于>,大于等于>=,小于<,小于等于<=,等于=,不等于<>,介于范圍內(nèi)between,存在于in,類似于like,binary全等選項(xiàng)注:比較結(jié)果為一個(gè)邏輯值1表示表達(dá)式成立,邏輯值0表示表達(dá)式不成立。>,<,=,>=,<=,<>例題:select10>8,10<8,10=8,10<>8;10013.4.4選取數(shù)據(jù)表記錄⑵比較表達(dá)式:binary選項(xiàng)例題:select‘A’=‘a(chǎn)’,binary‘A’=‘a(chǎn)’;10between例題:起始值and終止值select10between0and100,10betwenn50and100;10in例題:判斷存在的集合select‘g’in(‘r’,’G’,’b’),binary‘g’in(‘r’,’g’,’b’),’a’in(‘r’,’g’,’b’);1003.4.4選取數(shù)據(jù)表記錄⑵比較表達(dá)式:[not]like例題:通配符%任意符號(hào)select‘張華’like‘張%’,‘張華’like‘%張%’,’張華’like‘%張’;110通配符_1個(gè)字符select‘張華’like‘張_’,‘張華’like‘張__’,’張華’like‘_張’;
100not選項(xiàng)是類似結(jié)果取反select‘張華’notlike‘張%’;3.4.4選取數(shù)據(jù)表記錄⑶邏輯表達(dá)式:運(yùn)算對(duì)象+邏輯運(yùn)算符+運(yùn)算對(duì)象邏輯運(yùn)算符:and與(并且),or或(或者),not非(取反)邏輯真為1,邏輯假為0select1and1,1and0,1or1,0or0,not0,not1;1010103.4.4選取數(shù)據(jù)表記錄1.選取數(shù)據(jù)表數(shù)據(jù)表達(dá)式結(jié)果命令格式命令格式2:選取數(shù)據(jù)表中指定字段,指定記錄的結(jié)果,并對(duì)輸出結(jié)果進(jìn)行重組。select<字段名表>
[from<數(shù)據(jù)表名表>where<條件表達(dá)式>[orderby字段名[asc|desc]][groupby<字段名>]]字段名表:顯示獲取結(jié)果from數(shù)據(jù)表名表:數(shù)據(jù)源where條件表達(dá)式:獲取數(shù)據(jù)條件orderby字段名:按字段進(jìn)行升序asc或降序desc排序groupby字段名:按字段進(jìn)行分組3.4.4選取數(shù)據(jù)表記錄⑴選取輸出一個(gè)數(shù)據(jù)表的所有記錄的所有字段內(nèi)容。命令格式:select*from<數(shù)據(jù)表名>*代表所有字段例題:select*frommembers;顯示members數(shù)據(jù)表的所有記錄的所有字段。3.4.4選取數(shù)據(jù)表記錄⑵選取輸出一個(gè)數(shù)據(jù)表的所有記錄的部分字段內(nèi)容。命令格式:select<字段名表達(dá)式>from<數(shù)據(jù)表名>例題:select身份證號(hào),性別,出生日期,frommembers;顯示members數(shù)據(jù)表的所有記錄的身份證號(hào)、性別、出生日期字段。3.4.4選取數(shù)據(jù)表記錄⑶選取輸出一個(gè)數(shù)據(jù)表的所有記錄的部分字段內(nèi)容,字段名稱使用自定義名稱,數(shù)據(jù)表名使用自定義數(shù)據(jù)表別名。命令格式:select<字段名as自定義名稱>from<數(shù)據(jù)表名as自定義數(shù)據(jù)表別名>例題:select身份證號(hào)asVIP身份證號(hào),性別as會(huì)員性別,出生日期frommembersasmbs;顯示members數(shù)據(jù)表的所有記錄的身份證號(hào)(VIP身份證號(hào))、性別(會(huì)員性別)、出生日期字段。3.4.4選取數(shù)據(jù)表記錄⑷選取輸出一個(gè)數(shù)據(jù)表的符合條件記錄的所有字段內(nèi)容。命令格式:select*from<數(shù)據(jù)表名>where<條件表達(dá)式>例題:select*frommemberswhere性別=‘女’;顯示members數(shù)據(jù)表的所有性別為’女’的記錄的所有字段。3.4.4選取數(shù)據(jù)表記錄⑸選取輸出一個(gè)數(shù)據(jù)表的符合條件記錄的部分字段內(nèi)容。命令格式:select<字段名表>from<數(shù)據(jù)表名>where<條件表達(dá)式>例題:select身份證號(hào),性別,出生日期,職稱代碼frommemberswhere性別=‘女’;顯示members數(shù)據(jù)表的所有性別為’女’的記錄的身份證號(hào)、性別、出生日期、職稱代碼字段。3.4.4選取數(shù)據(jù)表記錄⑹選取輸出一個(gè)數(shù)據(jù)表的所有記錄的部分字段和表達(dá)式內(nèi)容,輸出記錄按指定字段排序。命令格式:select<字段名表,表達(dá)式表>from<數(shù)據(jù)表名>orderby<排序字段>asc|desc例題:select身份證號(hào),性別,出生日期,出生日期+1frommembersorderby出生日期asc;顯示members數(shù)據(jù)表的所有記錄的身份證號(hào)、性別、出生日期字段、出生日期+1表達(dá)式內(nèi)容,輸出結(jié)果按出生日期字段進(jìn)行升序排序。3.4.4選取數(shù)據(jù)表記錄⑹選取輸出一個(gè)數(shù)據(jù)表的所有記錄,部分字段和表達(dá)式內(nèi)容,輸出記錄按指定多個(gè)字段排序。命令格式:select<字段名表,表達(dá)式表>from<數(shù)據(jù)表名>orderby<排序字段1>asc|desc,
<排序字段2>asc|desc例題:select身份證號(hào),性別,year(curdate())-year(出生日期)as‘年齡’frommembersorderby性別desc,年齡asc;顯示members數(shù)據(jù)表的所有記錄的身份證號(hào)、性別、年齡,輸出結(jié)果按性別降序、年齡升序進(jìn)行排序。3.4.4選取數(shù)據(jù)表記錄⑹選取輸出一個(gè)數(shù)據(jù)表的部分記錄的部分字段和表達(dá)式內(nèi)容,輸出記錄按指定字段排序。例題:select身份證號(hào),性別,year(curdate())-year(出生日期)as‘年齡’frommemberswhere性別=‘女’orderby年齡desc;curdate()函數(shù):獲取當(dāng)前日期(結(jié)果為日期型數(shù)據(jù))year(日期型數(shù)據(jù)):獲取日期型數(shù)據(jù)中的年份。結(jié)果是一個(gè)數(shù)值。顯示members數(shù)據(jù)表的所有性別為女的記錄的身份證號(hào)、性別、年齡,輸出結(jié)果按年齡表達(dá)式進(jìn)行降序排序。3.4.4選取數(shù)據(jù)表記錄⑺選取輸出一個(gè)數(shù)據(jù)表的全部記錄,部分字段和表達(dá)式內(nèi)容,輸出結(jié)果按指定字段分組,可以對(duì)結(jié)果集進(jìn)行升序asc或降序desc排序。命令格式:select<字段名表,表達(dá)式表>from<數(shù)據(jù)表名>groupby<分組字段>[asc|desc];例題:select身份證號(hào),性別frommembersgroupby性別asc;顯示members數(shù)據(jù)表的所有記錄的身份證號(hào)、性別,輸出結(jié)果按性別分組,并按性別進(jìn)行升序排序。3.4.4選取數(shù)據(jù)表記錄⑻選取輸出一個(gè)數(shù)據(jù)表的全部記錄按照指定字段進(jìn)行分組,并計(jì)算每一個(gè)分組的記錄數(shù)count()。命令格式:select<字段名表,count()表達(dá)式>from<數(shù)據(jù)表名>groupby<分組字段>;例題:select身份證號(hào),性別,count(身份證號(hào))frommembersgroupby性別;顯示members數(shù)據(jù)表的男女的人數(shù)。3.4.4選取數(shù)據(jù)表記錄⑼選取輸出一個(gè)數(shù)據(jù)表的全部記錄按照指定字段進(jìn)行分組,并計(jì)算每一個(gè)分組的記錄數(shù)count()。例題:distinct選項(xiàng)select身份證號(hào),性別,count(性別)frommembersgroupby性別;顯示members數(shù)據(jù)表的男女的人數(shù)。select身份證號(hào),性別,count(distinct性別)frommembersgroupby性別;3.4.4選取數(shù)據(jù)表記錄⑽選取輸出一個(gè)數(shù)據(jù)表的符合條件的記錄,和部分字段,按照指定字段進(jìn)行分組,計(jì)算每一個(gè)分組中最大的出生日期max()。例題:select身份證號(hào),性別,職稱代碼,max(出生日期)frommemberswhere性別=‘女’groupby職稱代碼;顯示members數(shù)據(jù)表的性別為女的每一個(gè)職稱的最大出生日期。3.4.4選取數(shù)據(jù)表記錄⑾選取輸出一個(gè)數(shù)據(jù)表的部分字段,按照指定字段進(jìn)行分組,并選取符合條件的分組,計(jì)算每一個(gè)分組中最大的出生日期max()。例題:select身份證號(hào),性別,職稱代碼,max(出生日期)frommembersgroupby職稱代碼having性別=‘女’;顯示members數(shù)據(jù)表性別為女的每一個(gè)職稱組中最大出生日期。3.4.4選取數(shù)據(jù)表記錄⑿選取輸出一個(gè)數(shù)據(jù)表的符合條件記錄的部分字段或表達(dá)式,使用比較條件表達(dá)式。例題:>選項(xiàng)select身份證號(hào),性別,出生日期,職稱代碼frommemberswhere出生日期>’1980-01-01’;顯示members數(shù)據(jù)表的1980-01-01日期以后出生的人員信息。3.4.4選取數(shù)據(jù)表記錄⒀選取輸出一個(gè)數(shù)據(jù)表的符合條件記錄的部分字段或表達(dá)式,使用比較條件表達(dá)式。例題:like%、_選項(xiàng)select身份證號(hào),會(huì)員姓名,會(huì)員密碼frommemberwhere會(huì)員姓名like‘張%’;顯示member數(shù)據(jù)表姓張的人員信息。select身份證號(hào),會(huì)員姓名,會(huì)員密碼frommemberwhere會(huì)員姓名like‘張_’;顯示member數(shù)據(jù)表姓名2個(gè)字姓張的人員信息。3.4.4選取數(shù)據(jù)表記錄⒂選取輸出一個(gè)數(shù)據(jù)表的符合條件(兩個(gè)以上條件)記錄的部分字段或表達(dá)式,使用比較條件表達(dá)式。例題:like%選項(xiàng)select身份證號(hào),會(huì)員姓名,會(huì)員密碼frommemberwhere會(huì)員密碼>’555555’and會(huì)員姓名not
like‘張%’;顯示member數(shù)據(jù)表不姓張并且會(huì)員密碼>’555555’的人員信息。select身份證號(hào),會(huì)員姓名,會(huì)員密碼frommemberwhere會(huì)員密碼>’555555’or會(huì)員姓名not
like‘張%’;顯示member數(shù)據(jù)表不姓張或者會(huì)員密碼>’555555’的人員信息。3.4.4選取數(shù)據(jù)表記錄⒁選取輸出一個(gè)數(shù)據(jù)表的符合條件(兩個(gè)以上條件)記錄的部分字段或表達(dá)式,使用比較條件表達(dá)式。例題:like_選項(xiàng)select身份證號(hào),會(huì)員姓名,會(huì)員密碼frommemberwhere會(huì)員密碼>’555555’and會(huì)員姓名not
like‘張_’;顯示member數(shù)據(jù)表不姓張并且會(huì)員密碼>’555555’的人員信息。select身份證號(hào),會(huì)員姓名,會(huì)員密碼frommemberwhere會(huì)員密碼>’555555’or會(huì)員姓名not
like‘張_’;顯示member數(shù)據(jù)表不姓張或者會(huì)員密碼>’555555’的人員信息。3.4.4選取數(shù)據(jù)表記錄⒃選取輸出來(lái)自于兩個(gè)以上的數(shù)據(jù)表的數(shù)據(jù)集合,定義輸出條件和輸出的字段或表達(dá)式。輸出的字段必須指明所屬數(shù)據(jù)表,同時(shí)還要指明數(shù)據(jù)表之間的關(guān)聯(lián)。使用數(shù)據(jù)表別名(asmb)。例題:
select身份證號(hào),會(huì)員姓名,會(huì)員密碼frommember;顯示member數(shù)據(jù)表的身份證號(hào)、會(huì)員姓名、會(huì)員密碼。select身份證號(hào),性別,出生日期frommembers;顯示members數(shù)據(jù)表的身份證號(hào),性別,出生日期。selectmb.身份證號(hào),會(huì)員姓名,會(huì)員密碼,性別,出生日期frommemberasmb,memberswheremb.身份證號(hào)=members.身份證號(hào);3.4.4選取數(shù)據(jù)表記錄⒃選取輸出來(lái)自于五個(gè)數(shù)據(jù)表的數(shù)據(jù)集合。輸出同名字段必須指明所屬數(shù)據(jù)表,必須用and分隔定義表間關(guān)聯(lián)。例題:輸出訂單號(hào)(sell)、書名(book)、單價(jià)(book)、身份證號(hào)(member)、會(huì)員姓名(member)、性別(members)、職稱名稱(title)。
select訂單號(hào),書名,單價(jià),member.身份證號(hào),會(huì)員姓名,性別,職稱名稱frombook,member,title,members,sellwheresell.身份證號(hào)=member.身份證號(hào)andsell.圖書編號(hào)=book.圖書編號(hào)andmembers.身份證號(hào)=member.身份證號(hào)andmembers.職稱代碼=title.職稱代碼;3.4.4選取數(shù)據(jù)表記錄⒃選取輸出來(lái)自于五個(gè)數(shù)據(jù)表的數(shù)據(jù)集合。輸出同名字段必須指明所屬數(shù)據(jù)表,必須用and分隔定義表間關(guān)聯(lián)。例題:輸出訂單號(hào)(sell)、書名(book)、單價(jià)(book)、身份證號(hào)(member)、會(huì)員姓名(member)、性別(members)、職稱名稱(title)。選取條件,張宇購(gòu)買的圖書清單。
select訂單號(hào),書名,單價(jià),member.身份證號(hào),會(huì)員姓名,性別,職稱名稱frombook,member,title,members,sellwhere
(sell.身份證號(hào)=member.身份證號(hào)andsell.圖書編號(hào)=book.圖書編號(hào)andmembers.身份證號(hào)=member.身份證號(hào)andmembers.職稱代碼=title.職稱代碼)
and會(huì)員姓名=‘張宇’;3.4.4選取數(shù)據(jù)表記錄⒃選取輸出來(lái)自于五個(gè)數(shù)據(jù)表的數(shù)據(jù)集合。輸出同名字段必須指明所屬數(shù)據(jù)表,必須用and分隔定義表間關(guān)聯(lián)。例題:輸出訂單號(hào)(sell)、書名(book)、單價(jià)(book)、身份證號(hào)(member)、會(huì)員姓名(member)、性別(members)、職稱名稱(title)。選取條件,張宇、趙成新、李來(lái)群三人購(gòu)買的圖書清單。
select訂單號(hào),書名,單價(jià),member.身份證號(hào),會(huì)員姓名,性別,職稱名稱frombook,member,title,members,sellwhere
(sell.身份證號(hào)=member.身份證號(hào)andsell.圖書編號(hào)=book.圖書編號(hào)andmembers.身份證號(hào)=member.身份證號(hào)andmembers.職稱代碼=title.職稱代碼)
and會(huì)員姓名in(‘張宇’,’趙成新’,’李來(lái)群’);3.4.4選取數(shù)據(jù)表記錄⒃選取輸出來(lái)自于五個(gè)數(shù)據(jù)表的數(shù)據(jù)集合。輸出同名字段必須指明所屬數(shù)據(jù)表,必須用and分隔定義表間關(guān)聯(lián)。例題:輸出訂單號(hào)(sell)、書名(book)、單價(jià)(book)、身份證號(hào)(member)、會(huì)員姓名(member)、性別(members)、職稱名稱(title)。按會(huì)員姓名排序的圖書清單。
selectmember.身份證號(hào),會(huì)員姓名,訂單號(hào),書名,單價(jià),性別,職稱名稱frombook,member,title,members,sellwhere
(sell.身份證號(hào)=member.身份證號(hào)andsell.圖書編號(hào)=book.圖書編號(hào)andmembers.身份證號(hào)=member.身份證號(hào)andmembers.職稱代碼=title.職稱代碼)orderby
會(huì)員姓名;3.4.4選取數(shù)據(jù)表記錄⒃選取輸出來(lái)自于五個(gè)數(shù)據(jù)表的數(shù)據(jù)集合。輸出同名字段必須指明所屬數(shù)據(jù)表。必須用and分隔定義表間關(guān)聯(lián)。例題:輸出身份證號(hào)(member)、會(huì)員姓名(member)、訂單號(hào)(sell)、書名(book)、單價(jià)(book)、訂購(gòu)冊(cè)數(shù)(sell)、總金額=單價(jià)(book)*訂購(gòu)冊(cè)數(shù)(sell)、性別(members)、職稱名稱(title)。按會(huì)員姓名排序的圖書清單。
selectmember.身份證號(hào),會(huì)員姓名,訂單號(hào),書名,單價(jià),訂購(gòu)冊(cè)數(shù),單價(jià)*訂購(gòu)冊(cè)數(shù)as總金額,性別,職稱名稱frombook,member,title,members,sellwhere
(sell.身份證號(hào)=member.身份證號(hào)andsell.圖書編號(hào)=book.圖書編號(hào)andmembers.身份證號(hào)=member.身份證號(hào)andmembers.職稱代碼=title.職稱代碼)orderby
會(huì)員姓名;3.4.4選取數(shù)據(jù)表記錄⒃選取輸出來(lái)自于五個(gè)數(shù)據(jù)表的數(shù)據(jù)集合。輸出同名字段必須指明所屬數(shù)據(jù)表,必須用and分隔定義表間關(guān)聯(lián)。例題:輸出身份證號(hào)(member)、會(huì)員姓名(member)、訂單號(hào)(sell)、書名(book)、單價(jià)(book)、訂購(gòu)冊(cè)數(shù)(sell)、總金額=單價(jià)(book)*訂購(gòu)冊(cè)數(shù)(sell)、性別(members)、職稱名稱(title)。按總金額排序的圖書清單。
selectmember.身份證號(hào),會(huì)員姓名,訂單號(hào),書名,單價(jià),訂購(gòu)冊(cè)數(shù),單價(jià)*訂購(gòu)冊(cè)數(shù)as總金額frommember,book,title,members,sellwhere
(members.身份證號(hào)=member.身份證號(hào)andsell.身份證號(hào)=member.身份證號(hào)andsell.圖書編號(hào)=book.圖書編號(hào)andmembers.職稱代碼=title.職稱代碼)orderby總金額;3.4.4選取數(shù)據(jù)表記錄⒃選取輸出來(lái)自于五個(gè)數(shù)據(jù)表的數(shù)據(jù)集合。輸出同名字段必須指明所屬數(shù)據(jù)表,必須用and分隔定義表間關(guān)聯(lián)。例題:性別(members),sum(訂購(gòu)冊(cè)數(shù)(sell)),sum(單價(jià)(book)*訂購(gòu)冊(cè)數(shù)(sell)),sum(單價(jià)*訂購(gòu)冊(cè)數(shù))/sum(訂購(gòu)冊(cè)數(shù))as平均價(jià)格,按姓別分組并計(jì)算男女性購(gòu)書的冊(cè)數(shù)、金額、平均價(jià)格。
select性別,sum(訂購(gòu)冊(cè)數(shù)),sum(單價(jià)*訂購(gòu)冊(cè)數(shù)),sum(單價(jià)*訂購(gòu)冊(cè)數(shù))/sum(訂購(gòu)冊(cè)數(shù))as平均價(jià)格frommember,book,members,sellwhere
(members.身份證號(hào)=member.身份證號(hào)andsell.身份證號(hào)=member.身份證號(hào)
andsell.圖書編號(hào)=book.圖書編號(hào))groupby性別;3.4.4選取數(shù)據(jù)表記錄⒄使用子查詢作為查詢條件,獲取符合條件的記錄和指定部分字段作為輸出結(jié)果。命令格式:select<字段表達(dá)式>from<數(shù)據(jù)表名表>where<使用select子查詢選取條件表達(dá)式>orderby<排序字段表達(dá)式>[asc|desc]groupby<分組字段值>例題:身份證號(hào),性別,出生日期,輸出條件是出生日期最大(年齡最小,使用max()函數(shù))。
select性別,性別,出生日期frommemberswhere出生日期=(selectmax(出生日期)frommembersgroupby性別having性別=‘女’);3.4.4選取數(shù)據(jù)表記錄⒅使用子查詢作為查詢條件,獲取符合條件的記錄和指定部分字段作為輸出結(jié)果。命令格式:select<字段表達(dá)式>from<數(shù)據(jù)表名表>where<使用select選取的條件表達(dá)式>orderby<排序字段表達(dá)式>[asc|desc]groupby<分組字段值>例題:選取身份證號(hào),性別,職稱代碼,輸出條件是正高級(jí)職稱(職稱代碼最右邊第一位數(shù)是1)使用right函數(shù)。
select身份證號(hào),性別,職稱代碼frommemberswhere職稱代碼in(select職稱代碼frommemberswhere
right(職稱代碼,1)=‘1’);3.4.4選取數(shù)據(jù)表記錄⒅使用子查詢作為查詢條件,獲取符合條件的記錄和指定部分字段作為輸出結(jié)果。命令格式:例題:選取身份證號(hào),性別,職稱代碼,輸出條件是職稱為醫(yī)生系列(職稱代碼最左邊一位數(shù)是3)使用left函數(shù)。
select身份證號(hào),性別,職稱代碼frommemberswhere職稱代碼in(select職稱代碼frommemberswhere
left(職稱代碼,1)=‘3’);3.4.4選取數(shù)據(jù)表記錄⒅使用子查詢作為查詢條件,獲取符合條件的記錄和指定部分字段作為輸出結(jié)果。命令格式:例題:選取會(huì)員姓名,性別,職稱名稱,輸出條件是職稱為醫(yī)生系列或者是正高級(jí)職稱(職稱代碼最左邊第一位數(shù)是3)使用left函數(shù)和right
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025及未來(lái)5年中國(guó)三色印字箔市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025及未來(lái)5年中國(guó)直變壓器市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025及未來(lái)5年中國(guó)三氟化銻市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025及未來(lái)5年中國(guó)金屬清潔拋光膏市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 2025及未來(lái)5年中國(guó)有機(jī)山葛粉市場(chǎng)調(diào)查、數(shù)據(jù)監(jiān)測(cè)研究報(bào)告
- 考點(diǎn)攻克蘇科版八年級(jí)物理下冊(cè)《力與運(yùn)動(dòng)》單元測(cè)試試題(解析卷)
- 考點(diǎn)解析-人教版八年級(jí)上冊(cè)物理《聲現(xiàn)象》專項(xiàng)練習(xí)試題(含詳細(xì)解析)
- 心理咨詢室廣告制作方案(3篇)
- 策劃家庭活動(dòng)方案(3篇)
- 梯田建筑規(guī)劃方案設(shè)計(jì)規(guī)范(3篇)
- PPE防墜落基本知識(shí)培訓(xùn)課件
- 工程預(yù)算審核服務(wù)方案(3篇)
- 2025年新團(tuán)員入團(tuán)考試試題及答案
- 2025-2026學(xué)年七年級(jí)英語(yǔ)上學(xué)期第一次月考 (上海專用)原卷
- 2025年電梯培訓(xùn)考核題目及答案
- VTE課件講解教學(xué)課件
- 2024人教版七年級(jí)英語(yǔ)上冊(cè) Unit7課時(shí)4SectionB(1a-1d)分層作業(yè)(含答案)
- 高原性肺水腫
- 公司注銷原合同補(bǔ)充協(xié)議
- 2025年教科版小學(xué)三年級(jí)上冊(cè)《科學(xué)》第三單元第2課認(rèn)識(shí)氣溫計(jì)課件
- 平面直角坐標(biāo)系 課件 2025-2026學(xué)年北師大版數(shù)學(xué)八年級(jí)上冊(cè)
評(píng)論
0/150
提交評(píng)論