第3章添加、更新與刪除數(shù)據(jù)_第1頁
第3章添加、更新與刪除數(shù)據(jù)_第2頁
第3章添加、更新與刪除數(shù)據(jù)_第3頁
第3章添加、更新與刪除數(shù)據(jù)_第4頁
第3章添加、更新與刪除數(shù)據(jù)_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第三章添加、更新與刪除數(shù)據(jù)添加數(shù)據(jù)更新數(shù)據(jù)刪除數(shù)據(jù)?學習目標掌握添加數(shù)據(jù)、更新數(shù)據(jù)和刪除數(shù)據(jù)13了解INSERT語句的其他寫法2熟悉DELETE和TRUNCATE刪除數(shù)據(jù)的區(qū)別掌握了解熟悉添加數(shù)據(jù)3.1?點擊查看本小節(jié)知識架構(gòu)更新數(shù)據(jù)3.2刪除數(shù)據(jù)3.33.1數(shù)據(jù)庫基礎知識返回目錄3.1.13.1.2為表中所有字段添加數(shù)據(jù)為表的指定字段添加數(shù)據(jù)3.1.3同時添加多條記錄知識架構(gòu)3.1 添加數(shù)據(jù)3.1.1為表中所有字段添加數(shù)據(jù)通常情況下,向數(shù)據(jù)表中添加的新記錄應該包含表所有字段,即為該表中的所有字段添加數(shù)據(jù),為表中所有字段添加數(shù)據(jù)的INSERT語句有兩種。1、INSERT語句中指定所有字段名向表中添加新記錄時,可以在INSERT語句中列出表的所有字段名,其語法格式如下所示:INSERTINTO表名(字段名1,字段名2,……) VALUES(值1,值2,……);“字段名1,字段名2,……”表示數(shù)據(jù)表中的字段名稱,此處必須列出表所有字段的名稱;“值1,值2,……”表示每個字段的值,每個值的順序、類型必須與對應的字段相匹配。3.1 添加數(shù)據(jù)3.1.1為表中所有字段添加數(shù)據(jù)【例3-1】向student表中添加一條新記錄,記錄中id字段的值為1,name字段的值為‘zhangsan’,grade字段的值為98.5。在添加新記錄之前需要先創(chuàng)建一個數(shù)據(jù)庫chapter03,創(chuàng)建數(shù)據(jù)庫的SQL語句如下所示:選擇使用數(shù)據(jù)庫chapter03,SQL語句如下:在數(shù)據(jù)庫中創(chuàng)建一個表student用于存儲學生信息,創(chuàng)建student表的SQL語句如下所示:CREATEDATABASEchapter03;USEchapter03;3.1 添加數(shù)據(jù)3.1.1為表中所有字段添加數(shù)據(jù)在數(shù)據(jù)庫中創(chuàng)建一個表student用于存儲學生信息,創(chuàng)建student表的SQL語句如下所示:使用INSERT語句向student表中插入一條數(shù)據(jù),SQL語句如下所示:當上述SQL語句執(zhí)行成功后,會在表student中添加一條數(shù)據(jù)。為了驗證數(shù)據(jù)是否添加成功,使用SELECT語句查看student表中的數(shù)據(jù),查詢結(jié)果如下:INSERTINTOstudent(id,name,grade) VALUES(1,'zhangsan',98.5);3.1 添加數(shù)據(jù)3.1.1為表中所有字段添加數(shù)據(jù)當上述SQL語句執(zhí)行成功后,會在表student中添加一條數(shù)據(jù)。為了驗證數(shù)據(jù)是否添加成功,使用SELECT語句查看student表中的數(shù)據(jù),查詢結(jié)果如下:需要注意的是,使用INSERT語句添加記錄時,表名后的字段順序可以與其在表中定義的順序不一致,它們只需要與VALUES中值的順序一致即可。3.1 添加數(shù)據(jù)3.1.1為表中所有字段添加數(shù)據(jù)【例3-2】向student表中添加一條新記錄,記錄中id字段的值為2,name字段的值為‘lisi’,grade字段的值為95。SQL語句如下所示:執(zhí)行結(jié)果如下所示:接下來通過查詢語句查看數(shù)據(jù)是否成功添加,執(zhí)行結(jié)果如下所示:INSERTINTOstudent(name,grade,id) VALUES('lisi',95,2);3.1 添加數(shù)據(jù)3.1.1為表中所有字段添加數(shù)據(jù)2、INSERT語句中不指定字段名在MySQL中,可以通過不指定字段名的方式添加記錄,其基本的語法格式如下所示:在上述格式中,“值1,值2,……”用于指定要添加的數(shù)據(jù)。需要注意的是,由于INSERT語句中沒有指定字段名,添加的值的順序必須和字段在表中定義的順序相同。INSERTINTO表名VALUES(值1,值2,……);3.1 添加數(shù)據(jù)3.1.1為表中所有字段添加數(shù)據(jù)【例3-3】向student表中添加一條新記錄,記錄中id字段的值為3,name字段的值為‘wangwu’,grade字段的值為61.5。INSERT語句如下所示:使用SELECT語句查看student表中的數(shù)據(jù),查詢結(jié)果如下所示:INSERTINTOstudentVALUES(3,'lisi',61.5);3.1 添加數(shù)據(jù)3.1.2為表的指定字段添加數(shù)據(jù)為表的指定字段添加數(shù)據(jù),就是在INSERT語句中只向部分字段中添加值,而其他字段的值為表定義時的默認值。為表的指定字段添加數(shù)據(jù)的基本語法格式如下所示:在上述語法格式中,“字段1,字段2,…”表示數(shù)據(jù)表中的字段名稱,此次只指定表中部分字段的名稱。“值1,值2,……”表示指定字段的值,每個值的順序、類型必須與對應的字段相匹配。INSERTINTO表名(字段1,字段2,…)VALUES(值1,值2,…)3.1 添加數(shù)據(jù)3.1.2為表的指定字段添加數(shù)據(jù)【例3-4】向student表中添加一條新記錄,記錄中id字段的值為4,name字段的值為“zhaoliu”,grade字段不指定值,SQL語句如下所示:需要注意的是,如果某個字段在定義時添加了非空約束,但沒有添加default約束,那么插入新記錄時就必須為該字段賦值,否則數(shù)據(jù)庫系統(tǒng)會提示錯誤。INSERTINTOstudent(id,name)VALUES(4,'zhaoliu');3.1 添加數(shù)據(jù)3.1.2為表的指定字段添加數(shù)據(jù)【例3-5】向student表中添加一條新記錄,記錄中id字段的值為5,grade字段的值為97,name字段不指定值,SQL語句如下所示:執(zhí)行結(jié)果如下所示:從執(zhí)行結(jié)果可以看出,執(zhí)行INSERT語句時發(fā)生了錯誤,發(fā)生錯誤的原因是name字段沒有指定默認值,且添加了非NULL約束。INSERTINTOstudent(id,grade)VALUES(5,97);3.1 添加數(shù)據(jù)3.1.2為表的指定字段添加數(shù)據(jù)為指定字段添加數(shù)據(jù)時,指定字段也無需與其在表中定義的順序一致,它們只要與VALUES中值的順序一致即可?!纠?-6】向student表中添加一條新記錄,記錄中name字段的值為‘sunbin’,grade字段的值為55,id字段不指定值,SQL語句如下所示:執(zhí)行INSERT語句向student表中添加數(shù)據(jù),然后通過查詢語句查看數(shù)據(jù)是否成功添加。INSERTINTOstudent(grade,name)VALUES(55,'sunbin');3.1 添加數(shù)據(jù)多學一招:INSERT語句其他寫法INSERT語句還有一種語法格式,可以為表中指定的字段或者全部字段添加數(shù)據(jù),其格式如下所示:INSERTINTO表名SET字段名1=值1[,字段名2=值2,……]“字段名1”、“字段名2”是指需要添加數(shù)據(jù)的字段名稱,“值1”、“值2”表示添加的數(shù)據(jù)。如果在SET關鍵字后面指定了多個“字段名=值”對,每對之間使用逗號分隔,最后一個“字段名=值”對之后不需要逗號。接下來通過一個案例來演示使用這種語法格式向student表中添加記錄?!纠?-7】向student表中添加一條新記錄,該條記錄中id字段的值為5,name字段的值為‘boya’,grade字段的值為99,INSERT語句如下所示:INSERT語句成功執(zhí)行后,通過查詢語句查看數(shù)據(jù)是否成功添加。INSERTINTOstudentSETid=5,name='boya',grade=99;3.1 添加數(shù)據(jù)3.1.3同時添加多條記錄在MySQL中提供了使用一條INSERT語句同時添加多條記錄的功能,其語法格式如下所示:在上述語法格式中,“(字段名1,字段名2,……)”是可選的,用于指定插入的字段名?!?值1,值2,……)”表示要插入的記錄,該記錄可以有多條,并且每條記錄之間用逗號隔開。3.1 添加數(shù)據(jù)3.1.3同時添加多條記錄【例3-8】向student表中添加三條新記錄,INSERT語句如下所示:INSERT語句成功執(zhí)行后,通過查詢語句查看數(shù)據(jù)是否添加成功。在添加多條記錄時,可以不指定字段列表,只需要保證VALUES后面跟隨的值列表依照字段在表中定義的順序即可。和添加單條記錄一樣,如果不指定字段名,必須為每個字段添加數(shù)據(jù),如果指定了字段名,就只需要為指定的字段添加數(shù)據(jù)。3.1 添加數(shù)據(jù)3.1.3同時添加多條記錄【例3-9】向student表中添加三條新記錄,記錄中只為id和name字段添加值,INSERT語句如下所示:執(zhí)行INSERT語句向student表中添加數(shù)據(jù),然后通過查詢語句查看數(shù)據(jù)是否添加成功。3.2 更新數(shù)據(jù)MySQL中使用UPDATE語句來更新表中的記錄,其基本的語法格式如下所示:在上述語法格式中,“字段名1”,“字段名2”用于指定要更新的字段名稱,“值1”,“值2”用于表示字段更新的新數(shù)據(jù)。“WHERE條件表達式”是可選的,用于指定更新數(shù)據(jù)需要滿足的條件。UPDATE表名 SET字段名1=值1[,字段名2=值2,……] [WHERE條件表達式]3.2 更新數(shù)據(jù)UPDATE語句可以更新表中的部分數(shù)據(jù)和全部數(shù)據(jù),下面就對這兩種情況進行講解:1、UPDATE更新部分數(shù)據(jù)更新部分數(shù)據(jù)是指根據(jù)指定條件更新表中的某一條或者某幾條記錄,需要使用WHERE子句來指定更新記錄的條件。2、UPDATE更新全部數(shù)據(jù)在UPDATE語句中如果沒有使用WHERE子句,則會將表中所有記錄的指定字段都進行更新。

3.2 更新數(shù)據(jù)1、UPDATE更新部分數(shù)據(jù)【例3-10】更新student表中id字段值為1的記錄,將記錄中的name字段的值更改為‘caocao’,grade字段的值更改為50。首先使用查詢語句查看id字段值為1的記錄,執(zhí)行結(jié)果如下所示:下面使用UPDATE語句更新這條記錄,SQL語句如下所示:UPDATEstudentsetname='caocao',grade=50WHEREid=1;3.2 更新數(shù)據(jù)為了驗證數(shù)據(jù)是否更新成功,使用SELECT語句查看數(shù)據(jù)庫student中id為1的記錄,查詢結(jié)果如下所示:從查詢結(jié)果可以看到,id字段值為1的記錄發(fā)生了更新,記錄中name字段的值變?yōu)椤甤aocao’,grade字段的值變?yōu)?0。如果表中有多條記錄滿足WHERE子句中的條件表達式,則滿足條件的記錄都會發(fā)生更新。3.2 更新數(shù)據(jù)【例3-11】更新student表中id字段值小于4的記錄,將這些記錄的grade字段值都更新為100。首先使用查詢語句查看id字段值小4的記錄,執(zhí)行結(jié)果如下所示:下面使用UPDATE語句更新這3條記錄,UPDATE語句如下所示:UPDATEstudentSETgrade=100WHEREid<4;3.2 更新數(shù)據(jù)執(zhí)行UPDATE語句更新student表中的數(shù)據(jù),然后通過查詢語句查看更新后的數(shù)據(jù),執(zhí)行結(jié)果如下所示:從查詢結(jié)果可以看出,id字段值為1、2、3的記錄其grade字段值都變?yōu)?00,這說明滿足WHERE子句中條件表達式的記錄都更新成功。3.2 更新數(shù)據(jù)2、UPDATE更新全部數(shù)據(jù)【例3-12】更新student表中全部11條記錄,將grade字段值都更新為80,UPDATE語句如下所示:執(zhí)行UPDATE語句更新student表中的數(shù)據(jù),然后通過查詢語句查看更新后的記錄。UPDATEstudentSETgrade=80;3.3 刪除數(shù)據(jù)MySQL中使用DELETE語句來刪除表中的記錄,其語法格式如下所示:在上面的語法格式中,“表名”指定要執(zhí)行刪除操作的表,WHERE子句為可選參數(shù),用于指定刪除的條件,滿足條件的記錄會被刪除。DELETEFROM表名[WHERE條件表達式]3.3 刪除數(shù)據(jù)DELETE語句可以刪除表中的部分數(shù)據(jù)和全部數(shù)據(jù),下面就對這兩種情況進行講解:1、DELETE刪除部分數(shù)據(jù)刪除部分數(shù)據(jù)是指根據(jù)指定條件刪除表中的某一條或者某幾條記錄,需要使用WHERE子句來指定刪除記錄的條件。2、DELETE刪除全部數(shù)據(jù)在DELETE語句中如果沒有使用WHERE子句,則會將表中的所有記錄都刪除。3.3 刪除數(shù)據(jù)1、DELETE刪除部分數(shù)據(jù)【例3-13】在student表中,刪除id字段值為11的記錄。首先使用查詢語句查看id字段值為11的記錄,執(zhí)行結(jié)果如下所示:從查詢結(jié)果可以看到,student表中有一條id字段值為11的記錄,下面使用DELETE語句刪除這條記錄,DELETE語句如下所示:DELETEFROMstudentWHEREid=11;3.3 刪除數(shù)據(jù)DELETE語句成功執(zhí)行,接下來再次通過查詢語句查看id字段為11的記錄,執(zhí)行結(jié)果如下所示:從查詢結(jié)果可以看到記錄為空,說明id字段為11的記錄被成功刪除。在執(zhí)行刪除操作的表中,如果有多條記錄滿足WHERE子句中的條件表達式,則滿足條件的記錄都會被刪除。3.3 刪除數(shù)據(jù)【例3-14】在student表中,刪除id字段值大于5的所有記錄。首先使用查詢語句查看id字段值大于5的所有記錄,執(zhí)行結(jié)果如下所示:然后使用DELETE語句刪除滿足條件的這5條記錄,DELETE語句如下所示:DELETEFROMstudentWHEREid>5;3.3 刪除數(shù)據(jù)執(zhí)行DELETE語句刪除student表中的數(shù)據(jù),然后再次通過查詢語句查看id字段值大于5的記錄,執(zhí)行結(jié)果如下所示:從查詢結(jié)果可以看到記錄為空,說明id字段置大于5的記錄被成功刪除了。3.3 刪除數(shù)據(jù)2、DELETE刪除全部數(shù)據(jù)【例3-15】刪除student表中的所有記錄。在刪除數(shù)據(jù)之前首先使用查詢語句查看student表中的所有記錄,執(zhí)行結(jié)果如下所示:3.3 刪除數(shù)據(jù)從查詢結(jié)果可以看出,student表中還有6條記錄,下面使用DELETE語句將這6條記錄全部刪除,DELETE語句如下所示:執(zhí)行DELETE語句刪除student表中的數(shù)據(jù),然后再次通過查詢語句查看student表中的記錄,執(zhí)行結(jié)果如下所示:從查詢結(jié)果可以看到記錄為空,說明表中所有的記錄成功刪除。DELETEFROMstudent;3.3 刪除數(shù)據(jù)多學一招:使用關鍵字TRUNCATE刪除表中數(shù)據(jù)在MySQL數(shù)據(jù)庫中,還有一種方式可以用來刪除表中所有的記錄,這種方式需要用到一個關鍵字TRUNCATE,其語法格式如下:TRUNCATE的語法格式很簡單,只需要通過“表名”指定要執(zhí)行刪除操作的表即可。下面通過一個案例來演示TRUNCEATE的用法。TRUNCATE[TABLE]表名3.3 刪除數(shù)據(jù)多學一招:使用關鍵字TRUNCATE刪除表中數(shù)據(jù)【例3-16】在數(shù)據(jù)庫chapter03中創(chuàng)建一張表tab_truncate,創(chuàng)建tab_truncate表的SQL語句如下所示:向tab_truncate表中添加5條記錄,且只添加name字段的值,SQL語句如下所示:執(zhí)行INSERT語句向tab_truncate表中添加5條記錄,然后通過查詢語句查看數(shù)據(jù)是否成功添加。INSERTINTOtab_truncate(name)VALUES('A'),('B'),('C'),('D'),('E');3.3 刪除數(shù)據(jù)多學一招:使用關鍵字TRUNCATE刪除表中數(shù)據(jù)接下來使用TRUNCATE語句刪除tab_truncate表中的所有記錄,TRUNCATE語句如下所示:執(zhí)行結(jié)果如下所示:從執(zhí)行結(jié)果可以看到TRUNCATE語句成功執(zhí)行,接下來通過查詢語句查看tab_truncate表中的記錄是否刪除成功,執(zhí)行語句如下所示:通過查詢結(jié)果可以看到記錄為空,說明tab_表中的記錄被全部刪除了。TRUNCATETABLEtab_truncate;3.3 刪除數(shù)據(jù)多學一招:使用關鍵字TRUNCATE刪除表中數(shù)據(jù)TRUNCATE語句和DETELE語句都能實現(xiàn)刪除表中的所有數(shù)據(jù)的功能,但兩者也有一定的區(qū)別,下面就針對兩者的區(qū)別進行說明:1、DELETE語句是DML語句,TRUNCATE語句通常被認為是DDL語句。2、DELETE語句后面可以跟WHERE子句,通過指定WHERE子句中的條件表達式只刪除滿足條件的部分記錄,而TRUNCATE語句只能用于刪除表中的所有記錄3.3 刪除數(shù)據(jù)多學一招:使用關鍵字TRUNCATE刪除表中數(shù)據(jù)3、使用TRUNCATE語句刪除表中的數(shù)據(jù)后,再次向表中添加記錄時,自動增加字段的默認初始值重新由1開始,而使用DELETE語句

溫馨提示

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

最新文檔

評論

0/150

提交評論