版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第3章MySQL數(shù)據庫管理系統(tǒng)主要內容:MySQL數(shù)據庫基本知識數(shù)據庫模型概念數(shù)據庫服務器管理用戶的方法MySQL數(shù)據庫、數(shù)據表維護管理方法phpMyAdmin軟件的使用方法3.1MySQL數(shù)據庫管理系統(tǒng)概述3.1.1MySQL數(shù)據庫的術語1.MySQL數(shù)據庫管理系統(tǒng)的特點(1)采用客戶機/服務器模式,支持多用戶、多線程、互聯(lián)網操作,可以實時處理和共享數(shù)據。(2)MySQL軟件,由數(shù)據庫管理員創(chuàng)建用戶,包括設置用戶名、密碼、與授權。(3)數(shù)據類型豐富,字符、數(shù)值、日期、多媒體(4)占用資源少、運行效率高(5)MySQL數(shù)據庫管理系統(tǒng)軟件免費文件/服務器(File/Server)模式客戶機/服務器(Client/Server)模式3.1.1MySQL數(shù)據庫的術語2.MySQL操作模式(1)命令操作界面打開命令操作界面,單擊“開始”–“運行”輸入“mysql–uroot–p123456”,顯示mysql>(2)圖形操作界面打開瀏覽器IE在地址欄輸入http://nbxp/phpmyadmin進入MySQL圖形操作界面3.數(shù)據庫服務器安裝有數(shù)據庫管理系統(tǒng)的計算機服務器。管理方式:支持客戶機/服務器(C/S)主要職責:管理數(shù)據庫用戶、維護數(shù)據庫和數(shù)據表文件4.數(shù)據庫用戶被授權允許使用數(shù)據庫、數(shù)據表的人員。數(shù)據庫管理員:id=root,pwd=123456職責,維護用戶賬號、維護數(shù)據庫和數(shù)據表普通用戶:由數(shù)據庫管理員創(chuàng)建用戶賬號,并授權維護數(shù)據庫,數(shù)據表。5.數(shù)據模型是計算機組織數(shù)據需要遵守的規(guī)范。層次型、網狀型和關系型。一個關系對應一個二維的數(shù)據表(文件)。關系數(shù)據庫則是管理數(shù)據表的文件。MySQL數(shù)據模型由數(shù)據庫文件與數(shù)據表文件構成。數(shù)據庫文件:用于管理數(shù)據表構成信息的文件,數(shù)據庫文件名唯一(不重復)。數(shù)據表文件:用于管理數(shù)據記錄的文件,數(shù)據表文件名唯一(不重復)。數(shù)據表由,數(shù)據表文件名+數(shù)據表結構+數(shù)據記錄構成。關系數(shù)據庫的基本概念表:表名、列名和數(shù)據行組成。列:也稱作字段,域,屬性。行:也稱記錄。值:表中行與列的交匯處,即存儲的數(shù)據。表名與列名的命名規(guī)則:表名在數(shù)據庫中唯一,列名在表中唯一。學生基本情況表上一張下一張表和表之間的關系一對多的關系:兩個表之間的關系一對多學生基本情況表專業(yè)代碼表上一張下一張表和表之間的關系一對一的關系:兩個表之間的關系一對一。學生基本情況表學生成績單表上一張下一張6.數(shù)據類型指數(shù)據分類類別:字符型(姓名,職稱,地址)數(shù)值型(工資,成績,數(shù)量)可以進行運算日期型(出生日期,畢業(yè)時間)邏輯型(只有兩種狀態(tài),邏輯真和邏輯假)7.MySQL的數(shù)據存儲結構MySQL數(shù)據庫管理系統(tǒng)保存在“C:/AppServ/MySQL”系統(tǒng)數(shù)據庫MySQL,用戶創(chuàng)建的應用數(shù)據庫bookstore保存在“C:/AppServ/MySQL/Data”3.1.2案例說明網絡圖書銷售信息管理系統(tǒng)創(chuàng)建一個數(shù)據庫,數(shù)據庫文件名:bookstore在數(shù)據庫中創(chuàng)建三張數(shù)據表,數(shù)據表文件名分別是book(圖書情況表)、member(會員情況表)、sell(銷售情況表)3.2網絡數(shù)據庫的數(shù)據模型3.2.1數(shù)據類型指數(shù)據分類類別和型式。在一次運算過程中運算對象的類型必須一致(相同)。常見的類型:字符型,字母、漢字、數(shù)字符號、特殊符號數(shù)值型,整數(shù)和小數(shù)日期時間型,具有特定格式的數(shù)據邏輯型(布爾型),邏輯真True,邏輯假False1.字符串類型的數(shù)據(1)char:定長字符串類型,范圍0–255例:namechar(8),固定8個字節(jié)。name=“劉華”實際占用8字節(jié)“劉華____”(2)varchar:變長字符串類型,范圍0–255例:namevarchar(8),不超過8個字節(jié)。name=“劉華”實際占用5字節(jié)“劉華_”(3)text:變長文本類型的字符數(shù)據范圍0-65535(4)blob:變長(二進制形式)長文本數(shù)據范圍0-655352.數(shù)值類型的數(shù)據(1)int:整型數(shù)據,范圍0–4字節(jié),-2147483648–+2147483647(2)float:浮點型數(shù)據,包括整數(shù)和小數(shù)3.日期時間類型數(shù)據按照特定的日期格式和時間格式表示數(shù)據(1)date:表示日期,格式y(tǒng)yyy-mm-dd(2)time:表示時間,格式hh:mm:ss(3)datetime:表示日期時間,格式y(tǒng)yyy-mm-sshh:mm:ss3.2網絡數(shù)據庫的數(shù)據模型3.2.2數(shù)據庫是相關數(shù)據表的集合。數(shù)據庫文件名唯一。3.2.3數(shù)據表是相關數(shù)據記錄的集合。數(shù)據表文件名唯一。一個數(shù)據表:表文件名+數(shù)據表結構+數(shù)據記錄。3.3MySQL服務器用戶管理每一個使用MySQL數(shù)據庫的用戶必須擁有一個合法的賬號(包括用戶名,用戶密碼)和相應的權限。MySQL數(shù)據庫管理員賬號,用戶名為root,用戶密碼為123456(在安裝過程中設置的密碼,可以隨時修改)。普通用戶的賬號和權限必須由數(shù)據庫管理員創(chuàng)建和授權。3.3.1登錄MySQL服務器使用數(shù)據庫管理員的賬號登錄,用戶名root,用戶密碼123456。方法一,使用命令行方式登錄單擊“開始”–“所有程序”–“AppServ”–“MySQLcommandlineclient”輸入密碼123456。出現(xiàn)mysql>登錄成功密碼123456Mysql>提示符3.3.1登錄MySQL服務器方法二使用“運行”登錄MySQL服務器。單擊“開始”–“運行”命令格式:mysql–u<用戶名>-p<用戶密碼>用戶名root用戶密碼123456MySQL命令格式命令關鍵詞<選項>;分號表示命令結束并提交1)打開數(shù)據庫Use<數(shù)據庫名>;例:usemysql;打開mysql數(shù)據庫2)增加新用戶的賬號到mysql數(shù)據庫user表Insertinto數(shù)據表名(主機名,用戶名,用戶密碼,權限1,權限2,…)values(主機名值,用戶名值,用戶密碼值,權限1值,權限2值,…);3)激活數(shù)據Flushprivileges;3.3.2MySQL服務器的用戶管理MySQL服務器中內置系統(tǒng)數(shù)據庫,數(shù)據庫名為mysql,數(shù)據庫中內置數(shù)據表,數(shù)據表名為user。只能由數(shù)據庫管理員(root,123456)對用戶賬號進行維護,增加新用戶、修改用戶密碼、刪除用戶賬號、用戶賬號授權。使用root、123456登錄mysql數(shù)據庫管理系統(tǒng)。進入mysql>提示符User數(shù)據表中保存所有授權用戶(允許使用mysql數(shù)據庫的用戶)的用戶名、用戶密碼以及用戶權限表1/2。User數(shù)據表中保存所有授權用戶(允許使用mysql數(shù)據庫的用戶)的用戶名、用戶密碼以及用戶權限表2/2。1.增加新的用戶創(chuàng)建新的用戶賬號包括用戶名、用戶密碼、用戶權限。打開mysql數(shù)據庫插入新的用戶賬號數(shù)據到user數(shù)據表激活新創(chuàng)建的用戶賬號命令格式:mysql>usemysql;mysql>insert
intomysql.user(主機名稱,用戶名稱,用戶密碼,權限1,權限2,…)
values(host,user,password,select_priv,…);mysql>flush
privileges;增加用戶例題bookuser,111111用戶名bookuser,用戶密碼111111,擁有select,insert,update,delete,create,drop權限。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權限。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.修改用戶權限命令格式:update<表名>set[權限參數(shù)名稱=權限值]where<條件>;mysql>usemysql;mysql>updatemysql.userset權限名1=權限值1,權限名2=權限值2where<條件>;mysql>flush
privileges;修改權限例題修改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.刪除用戶賬號命令格式:deletefrom<表名>where<條件>mysql>usemysql;mysql>delete
frommysql.userwhere<條件>;mysql>flush
privileges;刪除用戶賬號例題刪除booktest用戶賬號mysql>usemysql;mysql>delete
frommysql.userwhereuser=‘bookuser’;mysql>flush
privileges;3.4MySQL數(shù)據管理維護數(shù)據庫:顯示數(shù)據庫,建立數(shù)據庫,刪除數(shù)據庫,打開數(shù)據庫。維護數(shù)據表:建立數(shù)據表,顯示數(shù)據表文件名,顯示數(shù)據表結構,修改數(shù)據表結構,刪除數(shù)據表文件,更換數(shù)據表名。維護數(shù)據表的數(shù)據(記錄):增加記錄,刪除記錄,修改記錄,選取記錄3.4.1維護MySQL數(shù)據庫1.顯示數(shù)據庫(MySQL數(shù)據庫是系統(tǒng)數(shù)據庫)顯示當前服務器中所有的數(shù)據庫。命令格式:showdatabases;是系統(tǒng)數(shù)據庫3.4.1維護MySQL數(shù)據庫2.建立數(shù)據庫在當前服務器中創(chuàng)建一個新的數(shù)據庫。命令格式:createdatabase<數(shù)據庫文件名>;例題:創(chuàng)建一個叫dbtest的數(shù)據庫。mysql>show
databases;查詢存在的數(shù)據庫mysql>create
databasedbtest;dbtest數(shù)據庫的位置。C:/AppServ/MySQL/data/dbtestmysql>show
databases;查詢存在的數(shù)據庫3.4.1維護MySQL數(shù)據庫3.刪除數(shù)據庫刪除當前服務器中的一個數(shù)據庫。命令格式:dropdatabase<數(shù)據庫文件名>;例題:創(chuàng)建一個叫dbtest的數(shù)據庫。mysql>show
databases;查詢存在的數(shù)據庫mysql>drop
databasedbtest;mysql>show
databases;查詢存在的數(shù)據庫3.4.1維護MySQL數(shù)據庫4.打開數(shù)據庫打開當前服務器中的一個數(shù)據庫。命令格式:use<數(shù)據庫文件名>;例題:打開bookstore數(shù)據庫。mysql>usebookstore;打開bookstore數(shù)據庫3.4.2維護MySQL數(shù)據表數(shù)據表=數(shù)據表名、數(shù)據表結構、數(shù)據記錄。指定數(shù)據表名定義數(shù)據表結構(字段名、字段類型、寬度、輔助項)數(shù)據表維護工作:1.創(chuàng)建一個新的數(shù)據表、2.顯示存在的數(shù)據表、3.顯示一個數(shù)據表的結構、4.修改數(shù)據表結構、5.刪除數(shù)據表、6.更換數(shù)據表名。3.4.2維護MySQL數(shù)據表1.建立新的數(shù)據表,定義表文件名、字段名、字段類型、字段寬度、設置字段屬性。命令格式:createtable<數(shù)據表名>(<字段1定義>,<字段2定義>,…<字段n定義>);字段i定義內容:字段名,類型,寬度,非空修飾符,default修飾符,auto_increment修飾符。
create字段約束
NULL和NOTNULL修飾符:NULL允許該字段為空值,NOTNULL該字段不允許為空值。DEFAULT修飾符:在插入記錄時自動插入一個默認值。AUTO_INCREMENT修飾符:只適用于INT類型字段,是步長為一的自動增量修飾。例題:建立數(shù)據表(members)數(shù)據表名:members字段名字段類型寬度說明身份證號 char18字符非NULL會員姓名char10字符非NULL會員密碼char6字符非NULL聯(lián)系電話varchar20字符非NULL注冊時間datetime日期時間非NULL創(chuàng)建數(shù)據表方法一:命令行方法單擊“開始”–“所有程序”–“AppServ”–“MySQLCommandLineClient”mysql>usebookstore;mysql>create
tablemembers(->身份證號char(18),->會員密碼char(6),->會員姓名char(10),->聯(lián)系電話varchar(20),->注冊時間datetime
->);逗號不能省綠色括號一對分號提交命令此處沒有逗號創(chuàng)建數(shù)據表方法二:批處理方法將創(chuàng)建數(shù)據表的命令寫入一個文本文件,擴展名為sql。創(chuàng)建批處理文件,用記事本編輯一個mysql批處理文件。文件名為:mysql_create_members.sql文件位置:c:\appserv\mysql\data文件內容(藍色部分):usebookstore;droptableifexistsmembers;createtablemembers(
身份證號char(18)notnull,
會員密碼char(6)notnull,
會員姓名char(10)notnull,
聯(lián)系電話varchar(20)notnull,
注冊時間datetime);運行批處理文件,在mysql命令行窗口輸入按以下格式輸入命令sourcemysql>source
c:\appserv\mysql\data\mysql_create_members.sql再編輯一個批處理文件c:\AppServ\MySQL\data\bookstore_create_tables.sql該文件創(chuàng)建book、member、sell三個數(shù)據表,數(shù)據表結構見p33-p34分號結束命令豆號不能省略如果members數(shù)據表存在就將它刪除打開bookstore數(shù)據庫創(chuàng)建數(shù)據表修飾符的使用創(chuàng)建testmbs數(shù)據表使用修飾符。createtestmbs(idint(6)notnullauto_increment,姓名char(8)notnull,性別char(2)notnulldefault‘男’,出生日期datenotnulldefault‘1998-05-16’
);索引索引的作用:提高搜索速度,減少查詢時間。創(chuàng)建索引(鍵)方式:方式一createtable創(chuàng)建索引createtable<數(shù)據表>(字段1定義,…字段n定義,index[索引名稱](字段1[,字段2,…]),
unique[索引名稱](字段1[,字段2,…]));方式二create[unique]index添加索引createindex[索引名]on數(shù)據表(字段1[,字段2]);createuniqueindex[索引名]on數(shù)據表(字段1[,字段2]);=unique選項不重createtable方式索引例題createtablestudent(學號char(8)notnull,姓名char(12)notnull,性別char(2)default‘男’,出生年月datenotnulldefault‘1978-01-08’,專業(yè)char(6)notnulldefault‘100001’,indexstudsp(專業(yè)),uniquestudid(學號));createindex方式索引例題createtablestudent(學號char(8)notnull,姓名char(12)notnull,性別char(2)notnulldefault‘男’,出生年月datenotnulldefault‘1978-01-08’,專業(yè)char(6)notnulldefault‘100001’);createindexstudsponstudent(專業(yè));create
uniqueindexstudidonstudent(學號);主鍵主鍵字段值(鍵值)非空且不重,可以多字段組合主鍵,一個數(shù)據表中主鍵只能有一個。創(chuàng)建主鍵方式:方式一createtable創(chuàng)建索引createtable<數(shù)據表>(字段1定義,…字段n定義,primarykey[索引名稱](字段1[,字段2,…]));添加主鍵方式:方式二altertable添加索引altertable數(shù)據表addprimarykey[索引名](字段1[,字段2]);createtable方式創(chuàng)建主鍵例題createtablestudent(學號char(8)notnull,姓名char(12)notnull,性別char(2)notnulldefault‘男’,出生年月datenotnulldefault‘1978-01-08’,專業(yè)char(6)notnulldefault‘100001’,
primarykeystudxh(學號));altertable方式添加主鍵例題createtablestudent(學號char(8)notnull,姓名char(12)notnull,性別char(2)notnulldefault‘男’,出生年月datenotnulldefault‘1978-01-08’,專業(yè)char(6)notnulldefault‘100001’);altertablestudentaddprimarykeystudxh(學號);外鍵通過外鍵在兩個數(shù)據表中建立關聯(lián),可以是一對一關聯(lián),也可以是一對多關聯(lián)。該關聯(lián)在關聯(lián)表中的數(shù)據構成參照完整性。定義外鍵格式:1.使用index索引項名(索引字段)創(chuàng)建索引。2.使用foreignkey(索引字段)references主鍵數(shù)據表名(主鍵索引字段)。createtable方式創(chuàng)建外鍵例題createtabletitle(
職稱代碼char(4)notnullprimarykey, 職稱名稱varchar(20)notnull )type=innodb;createtablemembers( 身份證號char(18) notnull, 性別char(2) notnull, 出生日期date notnull, 工作單位varchar(24) notnull, 單位地址varchar(24) notnull, 郵政編碼char(6) notnull,
職稱代碼char(4) notnull,
primarykey(身份證號),
index(職稱代碼),
foreignkey(職稱代碼)referencestitle(職稱代碼))type=innodb;altertable方式添加外鍵例題createtabletitle(
職稱代碼char(4)notnullprimarykey, 職稱名稱varchar(20)notnull )type=innodb;createtablemembers( 身份證號char(18) notnull, 性別char(2) notnull, 出生日期date notnull, 工作單位varchar(24) notnull, 單位地址varchar(24) notnull, 郵政編碼char(6) notnull,
職稱代碼char(4) notnull,
primarykey(身份證號),
index(職稱代碼))
type=innodb;altertable數(shù)據表名add
foreignkey(職稱代碼)referencestitle(職稱代碼)ondeletecascadeonupdatecascade;刪除索引,主鍵,外鍵刪除索引命令格式:dropindex索引名稱on數(shù)據表名;刪除主鍵命令格式:altertable數(shù)據表名dropprimary
key;刪除外鍵命令格式:altertable數(shù)據表名dropforeignkey外鍵標識;一般情況通過刪除表實現(xiàn)刪除外鍵(外鍵標識可以使用“showcreatetable數(shù)據表名”得到,信息中的constraint選項值)刪除索引、主鍵、外鍵例題createtabletitle(
職稱代碼char(4)notnullprimarykey, 職稱名稱varchar(20)notnull )type=innodb;createtablemembers( 身份證號char(18) notnull, 性別char(2) notnull, 出生日期date notnull, 工作單位varchar(24) notnull, 單位地址varchar(24) notnull, 郵政編碼char(6) notnull,
職稱代碼char(4) notnull,
primarykey(身份證號),
index(職稱代碼),
foreignkey(職稱代碼)referencestitle(職稱代碼))type=innodb;刪除索引,主鍵,外鍵例題刪除索引:dropindex索引名稱on數(shù)據表名;dropindex
職稱代碼
on
members;刪除索引,主鍵,外鍵例題刪除主鍵:altertable數(shù)據表名dropprimary
key;altertable
members
dropprimarykey;刪除索引,主鍵,外鍵例題刪除外鍵:altertable數(shù)據表名dropforeignkey外鍵標識;altertable
members
dropforeignkey
members_ibfk_1;外鍵標識使用
showcreatetable
members;的constraint得到members_ibfk_1外鍵參照完整性外鍵表外鍵與參照表主鍵建立數(shù)據關聯(lián),該關聯(lián)構成表間約束(參照完整性)。外鍵定義中的ondeletecascade約束、onupdatecascade約束。ondeletecascade約束關聯(lián)表同步刪除。onupdatecascade約束關聯(liá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維護MySQL數(shù)據表2.顯示數(shù)據表名。命令格式:showtables;3.4.2維護MySQL數(shù)據表2.例題:顯示bookstore數(shù)據庫中的數(shù)據表。mysql>show
tables;3.4.2維護MySQL數(shù)據表3.顯示數(shù)據表結構。命令格式:describe<數(shù)據表文件名>;3.4.2維護MySQL數(shù)據表3.例題:顯示members數(shù)據表的結構。mysql>describemembers;3.4.2維護MySQL數(shù)據表4.修改數(shù)據表結構。修改、增加、刪除字段名稱、字段類型⑴修改字段命令格式:altertable數(shù)據表名change原字段名新字段名
;①修改字段名例題:altertablememberschange性別會員性別char(2);②修改字段類型例題:altertablememberschange工作單位工作單位char(20);3.4.2維護MySQL數(shù)據表4.修改數(shù)據表結構。修改、增加、刪除字段名稱、字段類型⑵增加字段命令格式:altertable數(shù)據表名add字段名
字段類型;①增加字段例題:altertablemembersadd單位電話char(12);3.4.2維護MySQL數(shù)據表4.修改數(shù)據表結構。修改、增加、刪除字段名稱、字段類型⑶刪除字段命令格式:altertable數(shù)據表名drop字段名;①刪除字段例題:altertablemembersdrop單位電話;3.4.2維護MySQL數(shù)據表5.刪除數(shù)據表。命令格式:droptable[ifexists]數(shù)據表名;①直接刪除數(shù)據表例題:droptablemembers;刪除members數(shù)據表②如果數(shù)據表存在就刪除數(shù)據表:droptable
ifexistsmembers;如果members數(shù)據表存在就刪除members數(shù)據表3.4.2維護MySQL數(shù)據表6.更換數(shù)據表名。命令格式:renametable數(shù)據表名to新數(shù)據表名;①更換數(shù)據表名例題:renametablememberstomembersx;將數(shù)據表名為members的更換為membersx3.4.3維護數(shù)據表記錄1.增加記錄命令格式:insertinto數(shù)據表名(字段名1,…字段名n)
values(數(shù)值1,…數(shù)值n);字段i順序任意,字段i與數(shù)值i一一對應。①增加記錄例題:insertintomembersx(身份證號,性別,出生日期,工作單位)
values(,’男’,’1978-01-03’,’中國人民大學’);注意:增加記錄時主鍵字段或UNIQUE索引字段不能重復外鍵字段值在關聯(lián)表中主鍵值必須已經存在3.4.3維護數(shù)據表記錄2.刪除記錄命令格式1:刪除數(shù)據表中全部記錄。deletefrom數(shù)據表名;①刪除數(shù)據表中全部記錄例題:deletefrommembersx;命令格式2:刪除數(shù)據表中符合條件的記錄。deletefrom數(shù)據表名where條件表達式②刪除數(shù)據表中符合條件的記錄例題:deletefrommemberswhere
身份證號=3.4.3維護數(shù)據表記錄3.修改記錄命令格式1:修改數(shù)據表中全部記錄指定字段的值update<數(shù)據表名>set<字段名1=數(shù)值1>,…[字段名n=數(shù)值n]字段i順序任意,字段i與數(shù)值i一一對應,同時修改多個字段時set只使用一個。①修改全部記錄指定字段值例題:updatememberset會員密碼=‘999999’;3.4.3維護數(shù)據表記錄3.修改記錄命令格式2:修改數(shù)據表中符合條件的記錄指定字段的值update<數(shù)據表名>set<字段名1=數(shù)值1>,…[字段名n=數(shù)值n]where<條件表達式>①修改身份證號為的會員密碼為‘888888’,會員姓名為‘趙華’例題:updatememberset會員密碼=‘888888’,會員姓名=‘趙華’where身份證號=;3.4.4選取數(shù)據表記錄1.選取表達式命令格式命令格式1:選取顯示表達式表結果select<表達式表>表達式表:獲取顯示表達式結果。包括算術表達式,比較表達式,邏輯表達式。⑴算術表達式:運算對象+算術運算符+運算對象算術運算符:+,-,*,/例題:select18+25*4;一個表達式slect18+25*4,100/4+5;兩個表達式3.4.4選取數(shù)據表記錄1.選取表達式命令格式⑵比較表達式:運算對象+算術運算符+運算對象比較運算符:大于>,大于等于>=,小于<,小于等于<=,等于=,不等于<>,介于范圍內between,存在于in,類似于like,binary全等選項注:比較結果為一個邏輯值1表示表達式成立,邏輯值0表示表達式不成立。>,<,=,>=,<=,<>例題:select10>8,10<8,10=8,10<>8;10013.4.4選取數(shù)據表記錄⑵比較表達式:binary選項例題:select‘A’=‘a’,binary‘A’=‘a’;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ù)據表記錄⑵比較表達式:[not]like例題:通配符%任意符號select‘張華’like‘張%’,‘張華’like‘%張%’,’張華’like‘%張’;110通配符_1個字符select‘張華’like‘張_’,‘張華’like‘張__’,’張華’like‘_張’;
100not選項是類似結果取反select‘張華’notlike‘張%’;3.4.4選取數(shù)據表記錄⑶邏輯表達式:運算對象+邏輯運算符+運算對象邏輯運算符:and與(并且),or或(或者),not非(取反)邏輯真為1,邏輯假為0select1and1,1and0,1or1,0or0,not0,not1;1010103.4.4選取數(shù)據表記錄1.選取數(shù)據表數(shù)據表達式結果命令格式命令格式2:選取數(shù)據表中指定字段,指定記錄的結果,并對輸出結果進行重組。select<字段名表>
[from<數(shù)據表名表>where<條件表達式>[orderby字段名[asc|desc]][groupby<字段名>]]字段名表:顯示獲取結果from數(shù)據表名表:數(shù)據源where條件表達式:獲取數(shù)據條件orderby字段名:按字段進行升序asc或降序desc排序groupby字段名:按字段進行分組3.4.4選取數(shù)據表記錄⑴選取輸出一個數(shù)據表的所有記錄的所有字段內容。命令格式:select*from<數(shù)據表名>*代表所有字段例題:select*frommembers;顯示members數(shù)據表的所有記錄的所有字段。3.4.4選取數(shù)據表記錄⑵選取輸出一個數(shù)據表的所有記錄的部分字段內容。命令格式:select<字段名表達式>from<數(shù)據表名>例題:select身份證號,性別,出生日期,frommembers;顯示members數(shù)據表的所有記錄的身份證號、性別、出生日期字段。3.4.4選取數(shù)據表記錄⑶選取輸出一個數(shù)據表的所有記錄的部分字段內容,字段名稱使用自定義名稱,數(shù)據表名使用自定義數(shù)據表別名。命令格式:select<字段名as自定義名稱>from<數(shù)據表名as自定義數(shù)據表別名>例題:select身份證號asVIP身份證號,性別as會員性別,出生日期frommembersasmbs;顯示members數(shù)據表的所有記錄的身份證號(VIP身份證號)、性別(會員性別)、出生日期字段。3.4.4選取數(shù)據表記錄⑷選取輸出一個數(shù)據表的符合條件記錄的所有字段內容。命令格式:select*from<數(shù)據表名>where<條件表達式>例題:select*frommemberswhere性別=‘女’;顯示members數(shù)據表的所有性別為’女’的記錄的所有字段。3.4.4選取數(shù)據表記錄⑸選取輸出一個數(shù)據表的符合條件記錄的部分字段內容。命令格式:select<字段名表>from<數(shù)據表名>where<條件表達式>例題:select身份證號,性別,出生日期,職稱代碼frommemberswhere性別=‘女’;顯示members數(shù)據表的所有性別為’女’的記錄的身份證號、性別、出生日期、職稱代碼字段。3.4.4選取數(shù)據表記錄⑹選取輸出一個數(shù)據表的所有記錄的部分字段和表達式內容,輸出記錄按指定字段排序。命令格式:select<字段名表,表達式表>from<數(shù)據表名>orderby<排序字段>asc|desc例題:select身份證號,性別,出生日期,出生日期+1frommembersorderby出生日期asc;顯示members數(shù)據表的所有記錄的身份證號、性別、出生日期字段、出生日期+1表達式內容,輸出結果按出生日期字段進行升序排序。3.4.4選取數(shù)據表記錄⑹選取輸出一個數(shù)據表的所有記錄,部分字段和表達式內容,輸出記錄按指定多個字段排序。命令格式:select<字段名表,表達式表>from<數(shù)據表名>orderby<排序字段1>asc|desc,
<排序字段2>asc|desc例題:select身份證號,性別,year(curdate())-year(出生日期)as‘年齡’frommembersorderby性別desc,年齡asc;顯示members數(shù)據表的所有記錄的身份證號、性別、年齡,輸出結果按性別降序、年齡升序進行排序。3.4.4選取數(shù)據表記錄⑹選取輸出一個數(shù)據表的部分記錄的部分字段和表達式內容,輸出記錄按指定字段排序。例題:select身份證號,性別,year(curdate())-year(出生日期)as‘年齡’frommemberswhere性別=‘女’orderby年齡desc;curdate()函數(shù):獲取當前日期(結果為日期型數(shù)據)year(日期型數(shù)據):獲取日期型數(shù)據中的年份。結果是一個數(shù)值。顯示members數(shù)據表的所有性別為女的記錄的身份證號、性別、年齡,輸出結果按年齡表達式進行降序排序。3.4.4選取數(shù)據表記錄⑺選取輸出一個數(shù)據表的全部記錄,部分字段和表達式內容,輸出結果按指定字段分組,可以對結果集進行升序asc或降序desc排序。命令格式:select<字段名表,表達式表>from<數(shù)據表名>groupby<分組字段>[asc|desc];例題:select身份證號,性別frommembersgroupby性別asc;顯示members數(shù)據表的所有記錄的身份證號、性別,輸出結果按性別分組,并按性別進行升序排序。3.4.4選取數(shù)據表記錄⑻選取輸出一個數(shù)據表的全部記錄按照指定字段進行分組,并計算每一個分組的記錄數(shù)count()。命令格式:select<字段名表,count()表達式>from<數(shù)據表名>groupby<分組字段>;例題:select身份證號,性別,count(身份證號)frommembersgroupby性別;顯示members數(shù)據表的男女的人數(shù)。3.4.4選取數(shù)據表記錄⑼選取輸出一個數(shù)據表的全部記錄按照指定字段進行分組,并計算每一個分組的記錄數(shù)count()。例題:distinct選項select身份證號,性別,count(性別)frommembersgroupby性別;顯示members數(shù)據表的男女的人數(shù)。select身份證號,性別,count(distinct性別)frommembersgroupby性別;3.4.4選取數(shù)據表記錄⑽選取輸出一個數(shù)據表的符合條件的記錄,和部分字段,按照指定字段進行分組,計算每一個分組中最大的出生日期max()。例題:select身份證號,性別,職稱代碼,max(出生日期)frommemberswhere性別=‘女’groupby職稱代碼;顯示members數(shù)據表的性別為女的每一個職稱的最大出生日期。3.4.4選取數(shù)據表記錄⑾選取輸出一個數(shù)據表的部分字段,按照指定字段進行分組,并選取符合條件的分組,計算每一個分組中最大的出生日期max()。例題:select身份證號,性別,職稱代碼,max(出生日期)frommembersgroupby職稱代碼having性別=‘女’;顯示members數(shù)據表性別為女的每一個職稱組中最大出生日期。3.4.4選取數(shù)據表記錄⑿選取輸出一個數(shù)據表的符合條件記錄的部分字段或表達式,使用比較條件表達式。例題:>選項select身份證號,性別,出生日期,職稱代碼frommemberswhere出生日期>’1980-01-01’;顯示members數(shù)據表的1980-01-01日期以后出生的人員信息。3.4.4選取數(shù)據表記錄⒀選取輸出一個數(shù)據表的符合條件記錄的部分字段或表達式,使用比較條件表達式。例題:like%、_選項select身份證號,會員姓名,會員密碼frommemberwhere會員姓名like‘張%’;顯示member數(shù)據表姓張的人員信息。select身份證號,會員姓名,會員密碼frommemberwhere會員姓名like‘張_’;顯示member數(shù)據表姓名2個字姓張的人員信息。3.4.4選取數(shù)據表記錄⒂選取輸出一個數(shù)據表的符合條件(兩個以上條件)記錄的部分字段或表達式,使用比較條件表達式。例題:like%選項select身份證號,會員姓名,會員密碼frommemberwhere會員密碼>’555555’and會員姓名not
like‘張%’;顯示member數(shù)據表不姓張并且會員密碼>’555555’的人員信息。select身份證號,會員姓名,會員密碼frommemberwhere會員密碼>’555555’or會員姓名not
like‘張%’;顯示member數(shù)據表不姓張或者會員密碼>’555555’的人員信息。3.4.4選取數(shù)據表記錄⒁選取輸出一個數(shù)據表的符合條件(兩個以上條件)記錄的部分字段或表達式,使用比較條件表達式。例題:like_選項select身份證號,會員姓名,會員密碼frommemberwhere會員密碼>’555555’and會員姓名not
like‘張_’;顯示member數(shù)據表不姓張并且會員密碼>’555555’的人員信息。select身份證號,會員姓名,會員密碼frommemberwhere會員密碼>’555555’or會員姓名not
like‘張_’;顯示member數(shù)據表不姓張或者會員密碼>’555555’的人員信息。3.4.4選取數(shù)據表記錄⒃選取輸出來自于兩個以上的數(shù)據表的數(shù)據集合,定義輸出條件和輸出的字段或表達式。輸出的字段必須指明所屬數(shù)據表,同時還要指明數(shù)據表之間的關聯(lián)。使用數(shù)據表別名(asmb)。例題:
select身份證號,會員姓名,會員密碼frommember;顯示member數(shù)據表的身份證號、會員姓名、會員密碼。select身份證號,性別,出生日期frommembers;顯示members數(shù)據表的身份證號,性別,出生日期。selectmb.身份證號,會員姓名,會員密碼,性別,出生日期frommemberasmb,memberswheremb.身份證號=members.身份證號;3.4.4選取數(shù)據表記錄⒃選取輸出來自于五個數(shù)據表的數(shù)據集合。輸出同名字段必須指明所屬數(shù)據表,必須用and分隔定義表間關聯(lián)。例題:輸出訂單號(sell)、書名(book)、單價(book)、身份證號(member)、會員姓名(member)、性別(members)、職稱名稱(title)。
select訂單號,書名,單價,member.身份證號,會員姓名,性別,職稱名稱frombook,member,title,members,sellwheresell.身份證號=member.身份證號andsell.圖書編號=book.圖書編號andmembers.身份證號=member.身份證號andmembers.職稱代碼=title.職稱代碼;3.4.4選取數(shù)據表記錄⒃選取輸出來自于五個數(shù)據表的數(shù)據集合。輸出同名字段必須指明所屬數(shù)據表,必須用and分隔定義表間關聯(lián)。例題:輸出訂單號(sell)、書名(book)、單價(book)、身份證號(member)、會員姓名(member)、性別(members)、職稱名稱(title)。選取條件,張宇購買的圖書清單。
select訂單號,書名,單價,member.身份證號,會員姓名,性別,職稱名稱frombook,member,title,members,sellwhere
(sell.身份證號=member.身份證號andsell.圖書編號=book.圖書編號andmembers.身份證號=member.身份證號andmembers.職稱代碼=title.職稱代碼)
and會員姓名=‘張宇’;3.4.4選取數(shù)據表記錄⒃選取輸出來自于五個數(shù)據表的數(shù)據集合。輸出同名字段必須指明所屬數(shù)據表,必須用and分隔定義表間關聯(lián)。例題:輸出訂單號(sell)、書名(book)、單價(book)、身份證號(member)、會員姓名(member)、性別(members)、職稱名稱(title)。選取條件,張宇、趙成新、李來群三人購買的圖書清單。
select訂單號,書名,單價,member.身份證號,會員姓名,性別,職稱名稱frombook,member,title,members,sellwhere
(sell.身份證號=member.身份證號andsell.圖書編號=book.圖書編號andmembers.身份證號=member.身份證號andmembers.職稱代碼=title.職稱代碼)
and會員姓名in(‘張宇’,’趙成新’,’李來群’);3.4.4選取數(shù)據表記錄⒃選取輸出來自于五個數(shù)據表的數(shù)據集合。輸出同名字段必須指明所屬數(shù)據表,必須用and分隔定義表間關聯(lián)。例題:輸出訂單號(sell)、書名(book)、單價(book)、身份證號(member)、會員姓名(member)、性別(members)、職稱名稱(title)。按會員姓名排序的圖書清單。
selectmember.身份證號,會員姓名,訂單號,書名,單價,性別,職稱名稱frombook,member,title,members,sellwhere
(sell.身份證號=member.身份證號andsell.圖書編號=book.圖書編號andmembers.身份證號=member.身份證號andmembers.職稱代碼=title.職稱代碼)orderby
會員姓名;3.4.4選取數(shù)據表記錄⒃選取輸出來自于五個數(shù)據表的數(shù)據集合。輸出同名字段必須指明所屬數(shù)據表。必須用and分隔定義表間關聯(lián)。例題:輸出身份證號(member)、會員姓名(member)、訂單號(sell)、書名(book)、單價(book)、訂購冊數(shù)(sell)、總金額=單價(book)*訂購冊數(shù)(sell)、性別(members)、職稱名稱(title)。按會員姓名排序的圖書清單。
selectmember.身份證號,會員姓名,訂單號,書名,單價,訂購冊數(shù),單價*訂購冊數(shù)as總金額,性別,職稱名稱frombook,member,title,members,sellwhere
(sell.身份證號=member.身份證號andsell.圖書編號=book.圖書編號andmembers.身份證號=member.身份證號andmembers.職稱代碼=title.職稱代碼)orderby
會員姓名;3.4.4選取數(shù)據表記錄⒃選取輸出來自于五個數(shù)據表的數(shù)據集合。輸出同名字段必須指明所屬數(shù)據表,必須用and分隔定義表間關聯(lián)。例題:輸出身份證號(member)、會員姓名(member)、訂單號(sell)、書名(book)、單價(book)、訂購冊數(shù)(sell)、總金額=單價(book)*訂購冊數(shù)(sell)、性別(members)、職稱名稱(title)。按總金額排序的圖書清單。
selectmember.身份證號,會員姓名,訂單號,書名,單價,訂購冊數(shù),單價*訂購冊數(shù)as總金額frommember,book,title,members,sellwhere
(members.身份證號=member.身份證號andsell.身份證號=member.身份證號andsell.圖書編號=book.圖書編號andmembers.職稱代碼=title.職稱代碼)orderby總金額;3.4.4選取數(shù)據表記錄⒃選取輸出來自于五個數(shù)據表的數(shù)據集合。輸出同名字段必須指明所屬數(shù)據表,必須用and分隔定義表間關聯(lián)。例題:性別(members),sum(訂購冊數(shù)(sell)),sum(單價(book)*訂購冊數(shù)(sell)),sum(單價*訂購冊數(shù))/sum(訂購冊數(shù))as平均價格,按姓別分組并計算男女性購書的冊數(shù)、金額、平均價格。
select性別,sum(訂購冊數(shù)),sum(單價*訂購冊數(shù)),sum(單價*訂購冊數(shù))/sum(訂購冊數(shù))as平均價格frommember,book,members,sellwhere
(members.身份證號=member.身份證號andsell.身份證號=member.身份證號
andsell.圖書編號=book.圖書編號)groupby性別;3.4.4選取數(shù)據表記錄⒄使用子查詢作為查詢條件,獲取符合條件的記錄和指定部分字段作為輸出結果。命令格式:select<字段表達式>from<數(shù)據表名表>where<使用select子查詢選取條件表達式>orderby<排序字段表達式>[asc|desc]groupby<分組字段值>例題:身份證號,性別,出生日期,輸出條件是出生日期最大(年齡最小,使用max()函數(shù))。
select性別,性別,出生日期frommemberswhere出生日期=(selectmax(出生日期)frommembersgroupby性別having性別=‘女’);3.4.4選取數(shù)據表記錄⒅使用子查詢作為查詢條件,獲取符合條件的記錄和指定部分字段作為輸出結果。命令格式:select<字段表達式>from<數(shù)據表名表>where<使用select選取的條件表達式>orderby<排序字段表達式>[asc|desc]groupby<分組字段值>例題:選取身份證號,性別,職稱代碼,輸出條件是正高級職稱(職稱代碼最右邊第一位數(shù)是1)使用right函數(shù)。
select身份證號,性別,職稱代碼frommemberswhere職稱代碼in(select職稱代碼frommemberswhere
right(職稱代碼,1)=‘1’);3.4.4選取數(shù)據表記錄⒅使用子查詢作為查詢條件,獲取符合條件的記錄和指定部分字段作為輸出結果。命令格式:例題:選取身份證號,性別,職稱代碼,輸出條件是職稱為醫(yī)生系列(職稱代碼最左邊一位數(shù)是3)使用left函數(shù)。
select身份證號,性別,職稱代碼frommemberswhere職稱代碼in(select職稱代碼frommemberswhere
left(職稱代碼,1)=‘3’);3.4.4選取數(shù)據表記錄⒅使用子查詢作為查詢條件,獲取符合條件的記錄和指定部分字段作為輸出結果。命令格式:例題:選取會員姓名,性別,職稱名稱,輸出條件是職稱為醫(yī)生系列或者是正高級職稱(職稱代碼最左邊第一位數(shù)是3)使用left函數(shù)和right
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 混凝土結構工程試題+答案
- 平安內勤合同范例
- 木工吊頂施工合同范例
- 家紡廠銷售合同范例
- 山東環(huán)保設備工程合同范例
- 招商合作意向合同范例
- 臨建分包合同范例
- 用工單位工作合同范例
- 買賣店鋪合同范例
- 彩板房合同范例
- GA/T 2129-2024法庭科學生物檢材中草甘膦和草銨膦檢驗氣相色譜-質譜法
- 教師如何撰寫教研論文
- 保險公司高管資格考試綜合題及答案
- 2025屆黑龍江省黑河北安市數(shù)學七上期末考試試題含解析
- JT-T-155-2021汽車舉升機行業(yè)標準
- 銀行與商場合作方案設計
- 醫(yī)療器械經營質量管理制度pdf
- QCT457-2023救護車技術規(guī)范
- 大學英語四級完型填空專項訓練
- 中國地理教程(王靜愛)期末題庫
- 中醫(yī)兒科常見疾病診療指南
評論
0/150
提交評論