




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第6章MySQL表數據管理主要內容6.1插入數據6.2更新數據6.3刪除數據6.4約束對數據操作的限制6.5本章小結6.1插入數據6.1.1使用INSERT…VALUES語句插入一行數據語法格式:INSERT[INTO]tbl_name[(col_name[,col_name]...)]VALUES(value_list)說明:tbl_name:要插入數據的表的名稱;col_name:表中的列的名稱;value_list:要插入的數據對應各列的值,用逗號分隔6.1插入數據6.1.1使用INSERT…VALUES語句插入一行數據不指定列名語法格式:INSERT[INTO]tbl_nameVALUES(value_list)【例6.1】向student表插入一行數據('20190101001','劉麗','女','2001-03-02','漢族','0101')。在MySQL命令行客戶端輸入命令:INSERTINTOstudentVALUES('20190101001','劉麗','女','2001-03-02','漢族','0101');6.1插入數據6.1.1使用INSERT…VALUES語句插入一行數據指定列名語法格式:INSERT[INTO]tbl_name(col_name1,col_name2,……)VALUES(value_list)【【例6.2】向student表插入一行數據,學號為'20190101002',姓名為'張林',出生日期為'2000-09-12'。在MySQL命令行客戶端輸入命令:INSERTINTOstudent(sno,sname,sbirthday)VALUES('20190101002','張林','2000-09-12');6.1插入數據6.1.2使用INSERT…VALUES語句插入多行數據語法格式:INSERT[INTO]tbl_name[(col_name[,col_name]...)]VALUES(value_list),(value_list)……【例6.3】向student表插入3行數據。在MySQL命令行客戶端輸入命令:INSERTINTOstudentVALUES('20190102001','李宏','男','2001-08-29','回族','0102'),('20200102001','孫明','男','2001-10-18','漢族','0102'),('20200102002','趙均','男','2000-12-19','漢族','0102');6.1插入數據6.1.3使用INSERT…SET語句插入數據語法格式:INSERT[INTO]tbl_nameSETcol_name1=value1,col_name2=value2……【例6.4】向student表插入一行數據,學號為'20200101001',姓名為'張莉',性別為'女'民族為'漢族',專業(yè)為'0101'。在MySQL命令行客戶端輸入命令:INSERTINTOstudentSETsno='20200101001',sname='張莉',ssex='女',snation='漢族',mno='0101';6.1插入數據6.1.4使用INSERT…SELECT語句插入數據語法格式:INSERT[INTO]tbl_name[(col_name[,col_name]...)]SELECT...【例6.5】向student_computer表插入student表中專業(yè)為'0101'的學生數據。在MySQL命令行客戶端輸入命令:INSERTINTOstudent_computerSELECT*FROMstudentWHEREmno='0101';6.1插入數據6.1.5使用REPLACE語句插入數據語法格式:REPLACE[INTO]tbl_name[(col_name[,col_name]...)]VALUES(value_list)[,(value_list)…]|SETcol_name1=value1,col_name2=value2……|SELECT…說明:REPLACE語句是MySQL對SQL標準的擴展,或者插入數據,或者刪除再插入數據;REPLACE語句的語法格式和工作原理與INSERT完全相同,只是如果表中的一個舊行與新行在主鍵或唯一索引上具有相同的值,則在插入新行之前會刪除舊行。只有當表具有主鍵或唯一索引時,REPLACE才有意義。否則,它將等效于INSERT6.1插入數據6.1.5使用REPLACE語句插入數據【例6.5】使用REPLACE語句向student表插入2行數據。(1)先執(zhí)行SELECT語句查看student表中現有的數據,便于對比REPLACE語句執(zhí)行前后的數據:SELECT*FROMstudent;(2)輸入命令:REPLACEINTOstudentVALUES('20190101002','張林','男','2000-09-12','漢族','0101'),('20210201001','牛偉','男','2003-09-18','漢族','0201');(3)再執(zhí)行SELECT語句查看student表中現有的數據:SELECT*FROMstudent;6.2更新數據6.2.1單表更新語句語法格式:UPDATEtbl_nameSETcol_name1=value1[,col_name2=value2…][WHEREwhere_condition]說明:UPDATE子句指定要修改數據的表的名稱;SET子句指示要修改的列以及列的新值,每個值都可以是常量、表達式或關鍵字DEFAULT(將列顯式設置為其默認值)。WHERE子句指定要更新的行需滿足的條件。6.2更新數據6.2.1單表更新語句【例6.6】在student表中將學生'20190101002'的專業(yè)改為'0101'。在MySQL命令行客戶端輸入命令:UPDATEstudentSETmno='0101'WHEREsno='20190101002';6.2更新數據6.2.1單表更新語句【例6.7】在student_computer表中將所有學生的專業(yè)編號mno修改為NULL。在MySQL命令行客戶端輸入命令:UPDATEstudent_computerSETmno=NULL;6.2更新數據6.2.2多表更新語句語法格式:UPDATEtbl_name1,tbl_name2[,tbl_name3…]SETcol_name1=value1[,col_name2=value2…][WHEREwhere_condition]說明:多表更新語句執(zhí)行覆蓋多個表的更新操作,UPDATE子句列出操作涉及到的所有的表的名稱;WHERE子句需要指定表之間的連接條件,用于在多個表之間匹配行。6.2更新數據6.2.2多表更新語句【例6.8】在student_computer表中將學生的專業(yè)改為student表中對應學生的專業(yè)。在MySQL命令行客戶端輸入命令:UPDATEstudent,student_computerSETstudent_computer.mno=student.mnoWHEREstudent_computer.sno=student.sno;6.3刪除數據6.3.1單表刪除語句語法格式:DELETEFROMtbl_name[WHEREwhere_condition]說明:DELETE子句指定要刪除數據的表的名稱;WHERE子句指定要刪除的行需滿足的條件,如果沒有WHERE子句,則刪除表中所有行。6.3刪除數據6.3.1單表刪除語句【例6.9】刪除student表中專業(yè)編號為'0101'的學生記錄。在MySQL命令行客戶端輸入命令:DELETEFROMstudentWHEREmno='0101';6.3刪除數據6.3.2多表刪除語句語法格式:DELETEtbl_name1[.*][,tbl_name2[.*]]...FROMtbl_name1,tbl_name2[,tbl_name3…][WHEREwhere_condition]或:
DELETEFROMtbl_name1[.*][,tbl_name2[.*]]...USINGtbl_name1,tbl_name2[,tbl_name3…][WHEREwhere_condition]說明:DELETE子句指定要刪除數據的表的名稱;WHERE子句指定要刪除的行需滿足的條件,如果沒有WHERE子句,則刪除表中所有行。6.3刪除數據6.3.2多表刪除語句說明:第一種格式中的DELETE后和第二種格式中的DELETEFROM后指定要刪除數據的表的名稱;第一種格式中的FROM后和第二種格式中的USING后指定操作涉及的所有表的名稱;WHERE子句需要指定表之間的連接條件,用于在多個表之間匹配行。6.3刪除數據6.3.2多表刪除語句【例6.10】刪除student表中專業(yè)名稱為'軟件工程'的學生。在MySQL命令行客戶端輸入命令:DELETEstudentFROMstudent,majorWHEREstudent.mno=major.mnoandmajor.mname='軟件工程';或者:DELETEFROMstudentUSINGstudent,majorWHEREstudent.mno=major.mnoandmajor.mname='軟件工程';6.3刪除數據6.3.3使用TRUNCATETABLE語句清空數據語法格式:TRUNCATETABLEtbl_name說明:TRUNCATE操作刪除并重新創(chuàng)建表,這比DELETE逐個刪除行快得多,特別是對于大型表;TRUNCATE操作會導致隱式提交,因此無法回滾;TRUNCATETABLE語句不會引起DELETE觸發(fā)器調用(觸發(fā)器的內容參見第12章);
對于InnoDB表或NDB表,如果存在來自引用該表的其他表的任何外鍵約束,則TRUNCATETABLE失??;
因為TRUNCATE操作刪除并重新創(chuàng)建表,所以清空表數據后任何自動增量值都將重置為其起始值。6.4約束對數據操作的限制6.4.1主鍵約束和唯一性對DML的限制主鍵約束和唯一性約束要求字段的值必須唯一,此外主鍵約束還要求字段不能取空值。當向表中插入(INSERT)數據、更新(UPDATE)數據的時候,所插入的行或更新后的行在主鍵列或者唯一性約束所在列的值不能重復,否則操作將不能執(zhí)行。6.4約束對數據操作的限制6.4.1主鍵約束和唯一性對DML的限制【例6.12】向student表添加一個學生記錄,該學生的學號與表中某一行重復。INSERTINTOstudentVALUES('20190101001','張三','男','2002-04-02','漢族','0101');6.4約束對數據操作的限制6.4.2CHECK約束對DML的限制CHECK約束要求字段的值必須滿足檢查條件。向表中插入(INSERT)數據、更新(UPDATE)數據的時候,如果插入的數據或更新后的數據不滿足條件,則操作將不能執(zhí)行。【例6.13】向student表添加一個學生記錄,性別為'M'。在MySQL命令行客戶端輸入命令:INSERTINTOstudentVALUES('20190101010','張三','M','2002-04-02','漢族','0101');6.4約束對數據操作的限制6.4.3外鍵約束對DML的限制外鍵約束通常在兩個表的字段之間建立參照關系,創(chuàng)建外鍵約束后不僅外鍵約束所在的子表的DML操作收到外鍵約束的限制,被參照的父表執(zhí)行DML操作時也要遵守外鍵約束的限制:
對子表執(zhí)行INSERT和UPDATE操作時,插入或更新的行在外鍵列上的值要么為NULL要么必須是父表中主鍵已有的值;對父表執(zhí)行UPDATE修改主鍵的值和DELETE操作時,如果操作的行在子表中有匹配的子記錄,則根據當初
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T-ZZB 1584-2023 低壓電源系統的電涌保護器(SPD)
- 二零二五年度專業(yè)技術師徒傳承合作合同
- 2025年度門店合作線上線下融合營銷協議
- 二零二五年度不占股份分紅權益共享協議
- 二零二五年度招商引資合同中的政府與企業(yè)合作模式創(chuàng)新
- 2025年度終止供貨協議函范文模板與簽訂程序指導
- 二零二五年度綠色建筑產業(yè)廠房租賃服務協議
- 二零二五年度勞動合同法未簽訂合同員工競業(yè)禁止協議
- 二零二五年度物業(yè)安全管理人員勞動合同范本
- 二零二五年度消防安全設施設備安全評估與整改服務合同
- 《Spring框架》教學課件
- 2025年中考英語時文閱讀 6篇有關電影哪吒2和 DeepSeek的英語閱讀(含答案)
- 俞敏洪四級詞匯詞根聯想記憶法亂序wordlist
- 第四次工業(yè)革命ppt課件
- 水利工程水庫混凝土防滲墻施工方案
- 公路工程試驗常規(guī)檢測項目、檢測標準、檢測頻率、取樣方法(標準版)
- 圖解調音臺使用說明(共14頁)
- 員工人事檔案登記表(最終版)
- 服裝測量方法及圖示
- 地基承載力與擊數對照表(輕)
- 大連理工大學機械制圖習題集答案
評論
0/150
提交評論