版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、傳智播客專注于Java、.Net和Php、網(wǎng)頁平面設(shè)計工程師的培訓(xùn)第3章 添加、更新與刪除數(shù)據(jù)學(xué)習(xí)目標(biāo)u 學(xué)會為數(shù)據(jù)表的字段添加數(shù)據(jù)u 學(xué)會更新數(shù)據(jù)表中的數(shù)據(jù)u 學(xué)會刪除數(shù)據(jù)表中的數(shù)據(jù)通過上一章的學(xué)習(xí),相信大家對數(shù)據(jù)庫和數(shù)據(jù)表的基本操作有了一定了解,但要想操作數(shù)據(jù)庫中的數(shù)據(jù),必須得通過MySQL提供的數(shù)據(jù)庫操作語言實現(xiàn),包括插入數(shù)據(jù)的INSERT語句,更新數(shù)據(jù)的UPDATE語句以及刪除數(shù)據(jù)的DELETE語句,本章將針對這些操作進行詳細地講解。3.1 添加數(shù)據(jù)要想操作數(shù)據(jù)表中的數(shù)據(jù),首先得保證數(shù)據(jù)表中存在數(shù)據(jù)。MySQL使用INSERT語句向數(shù)據(jù)表中添加數(shù)據(jù),并且根據(jù)添加方式的不同分為三種,分別
2、是為表的所有字段添加數(shù)據(jù)、為表的指定字段添加數(shù)據(jù)、同時添加多條記錄。本節(jié)將針對這三種添加數(shù)據(jù)的方式進行詳細地講解。3.1.1 為表中所有字段添加數(shù)據(jù)通常情況下,向數(shù)據(jù)表中添加的新記錄應(yīng)該包含表所有字段,即為該表中的所有字段添加數(shù)據(jù),為表中所有字段添加數(shù)據(jù)的INSERT語句有兩種,具體如下:1、 INSERT語句中指定所有字段名向表中添加新記錄時,可以在INSERT語句中列出表的所有字段名,其語法格式如下所示:INSERT INTO 表名(字段名1,字段名2,) VALUES(值1,值2,);在上述語法格式中,“字段名1,字段名2,”表示數(shù)據(jù)表中的字段名稱,此處必須列出表所有字段的名稱;“值1,
3、值2,”表示每個字段的值,每個值的順序、類型必須與對應(yīng)的字段相匹配?!纠?-1】向student表中添加一條新記錄,記錄中id字段的值為1,name字段的值為zhangsan,grade字段的值為98.5。在添加新記錄之前需要先創(chuàng)建一個數(shù)據(jù)庫chapter03,創(chuàng)建數(shù)據(jù)庫的SQL語句如下所示:CREATE DATABASE chapter03;選擇使用數(shù)據(jù)庫chapter03,SQL語句如下:USE chapter03;在數(shù)據(jù)庫中創(chuàng)建一個表student用于存儲學(xué)生信息,創(chuàng)建student表的SQL語句如下所示:CREATE TABLE student( id INT(4), name VAR
4、CHAR(20) NOT NULL, grade FLOAT);使用INSERT語句向student表中插入一條數(shù)據(jù),SQL語句如下所示:INSERT INTO student(id,name,grade) VALUES(1,'zhangsan',98.5);當(dāng)上述SQL語句執(zhí)行成功后,會在表student中添加一條數(shù)據(jù)。為了驗證數(shù)據(jù)是否添加成功,使用SELECT語句查看student表中的數(shù)據(jù),查詢結(jié)果如下: mysql> SELECT * FROM student;+-+-+-+| id | name | grade |+-+-+-+| 1 | zhangsan |
5、98.5 |+-+-+-+1 row in set (0.00 sec)從查詢結(jié)果可以看出,student表中成功地添加了一條記錄,“1 row in set”表示查詢出了一條記錄。關(guān)于SELECT查詢語句的相關(guān)知識,將在第4章進行詳細講解,這里大家有個大致印象即可。需要注意的是,使用INSERT語句添加記錄時,表名后的字段順序可以與其在表中定義的順序不一致,它們只需要與VALUES中值的順序一致即可。【例3-2】 向student表中添加一條新記錄,記錄中id字段的值為2,name字段的值為lisi,grade字段的值為95,SQL語句如下所示:INSERT INTO student(nam
6、e,grade,id)VALUES('lisi',95,2);執(zhí)行結(jié)果如下所示:mysql> INSERT INTO student(name,grade,id) -> VALUES('lisi',95,2);Query OK, 1 row affected (0.02 sec)從執(zhí)行結(jié)果可以看到,三個字段id,name和grade的順序進行了調(diào)換,同時VALUES后面值的順序也做了相應(yīng)地調(diào)換,INSERT語句同樣執(zhí)行成功,接下來通過查詢語句查看數(shù)據(jù)是否成功添加,執(zhí)行結(jié)果如下所示:mysql> select * from student;+-+
7、-+-+| id | name | grade |+-+-+-+| 1 | zhangsan | 98.5 | 2 | lisi | 95 |+-+-+-+2 rows in set (0.00 sec)從查詢結(jié)果可以看出,student表中同樣成功地添加了一條記錄。2、 INSERT語句中不指定字段名在MySQL中,可以通過不指定字段名的方式添加記錄,其基本的語法格式如下所示:INSERT INTO 表名 VALUES(值1,值2,); 在上述格式中,“值1,值2,”用于指定要添加的數(shù)據(jù)。需要注意的是,由于INSERT語句中沒有指定字段名,添加的值的順序必須和字段在表中定義的順序相同?!纠?
8、-3】 向student表中添加一條新記錄,記錄中id字段的值為3,name字段的值為wangwu,grade字段的值為61.5,INSERT語句如下所示:INSERT INTO studentVALUES(3,'lisi',61.5);SQL語句執(zhí)行成功后,同樣會在student表中添加一條新的記錄。為了驗證數(shù)據(jù)是否添加成功,使用SELECT語句查看student表中的數(shù)據(jù),查詢結(jié)果如下所示:mysql> select * from student;+-+-+-+| id | name | grade |+-+-+-+| 1 | zhangsan | 98.5 | 2
9、| lisi | 95 | 3 | wangwu | 61.5 |+-+-+-+3 rows in set (0.00 sec)從上述結(jié)果可以看出,student表中成功添加了一條記錄。由此可見,INSERT語句中不指定字段名同樣成功添加數(shù)據(jù)。3.1.2 為表的指定字段添加數(shù)據(jù)為表的指定字段添加數(shù)據(jù),就是在INSERT語句中只向部分字段中添加值,而其他字段的值為表定義時的默認值。為表的指定字段添加數(shù)據(jù)的基本語法格式如下所示:INSERT INTO 表名(字段1,字段2,) VALUES(值1,值2,)在上述語法格式中,“字段1,字段2,”表示數(shù)據(jù)表中的字段名稱,此次只指定表中部分字段的名稱?!?/p>
10、值1,值2,”表示指定字段的值,每個值的順序、類型必須與對應(yīng)的字段相匹配?!纠?-4】 向student表中添加一條新記錄,記錄中id字段的值為4,name字段的值為“zhaoliu”,grade字段不指定值,SQL語句如下所示:INSERT INTO student(id,name)VALUES(4,'zhaoliu');上述SQL語句執(zhí)行成功后,會向student表中添加一條新的數(shù)據(jù)。為了驗證數(shù)據(jù)是否添加成功,使用SELECT語句查看student表,結(jié)果如下所示:mysql> select * from student;+-+-+-+| id | name | gr
11、ade |+-+-+-+| 1 | zhangsan | 98.5 | 2 | lisi | 95 | 3 | wangwu | 61.5 | 4 | zhaoliu | NULL |+-+-+-+4 rows in set (0.00 sec)從查詢結(jié)果可以看出,新記錄添加成功,但是grade字段的值為NULL。這是因為在添加新記錄時,如果沒有為某個字段賦值,系統(tǒng)會自動為該字段添加默認值。通過SQL語句“SHOW CREATE TABLE studentG”可以查看student表的詳細結(jié)構(gòu),SQL執(zhí)行結(jié)果如下所示:mysql> SHOW CREATE TABLE studentG*
12、1. row * Table: studentCreate Table: CREATE TABLE 'student' ( 'id' int(4) DEFAULT NULL, 'name' varchar(20) NOT NULL, 'grade' float DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf81 row in set (0.00 sec)從表的詳細結(jié)構(gòu)中可以看出,grade字段的默認值為NULL。本例中沒有為grade字段賦值,系統(tǒng)會自動為其添加默認值NULL。需要注
13、意的是,如果某個字段在定義時添加了非空約束,但沒有添加default約束,那么插入新記錄時就必須為該字段賦值,否則數(shù)據(jù)庫系統(tǒng)會提示錯誤?!纠?-5】向student表中添加一條新記錄,記錄中id字段的值為5,grade字段的值為97,name字段不指定值,SQL語句如下所示:INSERT INTO student(id,grade) VALUES(5,97);執(zhí)行結(jié)果如下所示:mysql> INSERT INTO student(id,grade) -> VALUES(5,97);ERROR 1364 (HY000): Field 'name' doesn'
14、t have a default value從執(zhí)行結(jié)果可以看出,執(zhí)行INSERT語句時發(fā)生了錯誤,發(fā)生錯誤的原因是name字段沒有指定默認值,且添加了非NULL約束。接下來,通過查詢語句查看數(shù)據(jù)是否成功添加,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student;+-+-+-+| id | name | grade |+-+-+-+| 1 | zhangsan | 98.5 | 2 | lisi | 95 | 3 | wangwu | 61.5 | 4 | zhaoliu | NULL |+-+-+-+4 rows in set (0.00 sec)通過查詢結(jié)果可以看
15、到,student表中仍然只有4條記錄,新記錄沒有添加成功。為指定字段添加數(shù)據(jù)時,指定字段也無需與其在表中定義的順序一致,它們只要與VALUES中值的順序一致即可。【例3-6】向student表中添加一條新記錄,記錄中name字段的值為sunbin,grade字段的值為55,id字段不指定值,SQL語句如下所示:INSERT INTO student(grade,name)VALUES(55,'sunbin');執(zhí)行INSERT語句向student表中添加數(shù)據(jù),然后通過查詢語句查看數(shù)據(jù)是否成功添加,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student
16、;+-+-+-+| id | name | grade |+-+-+-+| 1 | zhangsan | 98.5 | 2 | lisi | 95 | 3 | wangwu | 61.5 | 4 | zhaoliu | NULL | NULL | sunbin | 55 |+-+-+-+5 rows in set (0.00 sec)從查詢結(jié)果可以看出,新記錄添加成功。&多學(xué)一招:INSERT語句其他寫法INSERT語句還有一種語法格式,可以為表中指定的字段或者全部字段添加數(shù)據(jù),其格式如下所示:INSERT INTO 表名SET 字段名1=值1,字段名2=值2,在上面的語法格式中,“字
17、段名1”、“字段名2”是指需要添加數(shù)據(jù)的字段名稱,“值1”、“值2”表示添加的數(shù)據(jù)。如果在SET關(guān)鍵字后面指定了多個“字段名=值”對,每對之間使用逗號分隔,最后一個“字段名=值”對之后不需要逗號。接下來通過一個案例來演示使用這種語法格式向student表中添加記錄。【例3-7】向student表中添加一條新記錄,該條記錄中id字段的值為5,name字段的值為boya,grade字段的值為99,INSERT語句如下所示:INSERT INTO studentSET id=5,name='boya',grade=99;執(zhí)行結(jié)果如下所示:mysql> INSERT INTO s
18、tudent -> SET id=5,name='boya',grade=99;Query OK, 1 row affected (0.00 sec) 從執(zhí)行結(jié)果可以看到INSERT語句成功執(zhí)行,接下來通過查詢語句查看數(shù)據(jù)是否成功添加,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student;+-+-+-+| id | name | grade |+-+-+-+| 1 | zhangsan| 98.5 | 2 | lisi | 95 | 3 | wangwu | 61.5 | 4 | zhaoliu | NULL | NULL | sunbin |
19、 55 | 5 | boya | 99 |+-+-+-+6 rows in set (0.00 sec)從查詢結(jié)果可以看出,student表中新記錄添加成功。3.1.3 同時添加多條記錄有時候,需要一次向表中添加多條記錄,當(dāng)然,我們可以使用上面學(xué)習(xí)的兩種方式將記錄逐條添加,但是這樣做需要書寫多條INSERT語句,比較麻煩。其實,在MySQL中提供了使用一條INSERT語句同時添加多條記錄的功能,其語法格式如下所示:INSERT INTO 表名(字段名1,字段名2,) VALUES(值1,值2,),(值1,值2,), (值1,值2,); 在上述語法格式中,“(字段名1,字段名2,)”是可選的,用
20、于指定插入的字段名?!?值1,值2,)”表示要插入的記錄,該記錄可以有多條,并且每條記錄之間用逗號隔開。【例3-8】向student表中添加三條新記錄,INSERT語句如下所示:INSERT INTO student VALUES(6,'lilei',99),(7,'hanmeimei',100),(8,'poly',40.5);執(zhí)行結(jié)果如下所示:mysql> INSERT INTO student VALUES -> (6,'lilei',99), -> (7,'hanmeimei',100),
21、 -> (8,'poly',40.5);Query OK, 3 rows affected (0.00 sec)Records: 3 Duplicates: 0 Warnings: 0從執(zhí)行結(jié)果可以看出,INSERT語句成功執(zhí)行。其中“Records:3”表示添加三條記錄,“Duplicates:0”表示添加的三條記錄沒有重復(fù),“Warning:0”表示添加記錄時沒有警告。在添加多條記錄時,可以不指定字段列表,只需要保證VALUES后面跟隨的值列表依照字段在表中定義的順序即可。接下來通過查詢語句查看數(shù)據(jù)是否成功添加,執(zhí)行結(jié)果如下所示:mysql> SELECT *
22、FROM student;+-+-+-+| id | name | grade |+-+-+-+| 1 | zhangsan | 98.5 | 2 | lisi | 95 | 3 | wangwu | 61.5 | 4 | zhaoliu | NULL | NULL | sunbin | 55 | 5 | boya | 99 | 6 | lilei | 99 | 7 | hanmeimei | 100 | 8 | poly | 40.5 |+-+-+-+8 rows in set (0.00 sec)從查詢結(jié)果可以看到,student表中添加了三條新的記錄。和添加單條記錄一樣,如果不指定字段名
23、,必須為每個字段添加數(shù)據(jù),如果指定了字段名,就只需要為指定的字段添加數(shù)據(jù)。【例3-9】向student表中添加三條新記錄,記錄中只為id和name字段添加值,INSERT語句如下所示:INSERT INTO student(id,name) VALUES(9,'liubei'),(10,'guanyu'),(11,'zhangfei');執(zhí)行INSERT語句向student表中添加數(shù)據(jù),然后通過查詢語句查看數(shù)據(jù)是否成功添加,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student -> WHERE id>8;+
24、-+-+-+| id | name | grade |+-+-+-+| 9 | liubei | NULL | 10 | guanyu | NULL | 11 | zhangfei | NULL |+-+-+-+3 rows in set (0.01 sec)通過查詢結(jié)果可以看出,student表中添加了3條新的記錄,由于INSERT語句中沒有為grade字段添加值,系統(tǒng)自動為其添加默認值NULL。需要注意的是,由于student表中存在多條記錄,都查詢出來不便于觀察,因此在查詢語句中使用了WHERE子句來指定查詢條件,WHERE id>8限定了只查詢student表中id值大于8的記錄
25、。3.2 更新數(shù)據(jù)更新數(shù)據(jù)是指對表中存在的記錄進行修改,這是數(shù)據(jù)庫常見的操作,比如某個學(xué)生改了名字,就需要對其記錄信息中的name字段值進行修改。MySQL中使用UPDATE語句來更新表中的記錄,其基本的語法格式如下所示:UPDATE 表名SET 字段名1 = 值1,字段名2 = 值2,WHERE 條件表達式在上述語法格式中,“字段名1”,“字段名2”用于指定要更新的字段名稱,“值1”,“值2”用于表示字段更新的新數(shù)據(jù)?!癢HERE條件表達式”是可選的,用于指定更新數(shù)據(jù)需要滿足的條件。UPDATE語句可以更新表中的部分?jǐn)?shù)據(jù)和全部數(shù)據(jù),下面就對這兩種情況進行講解:1、 UPDATE更新部分?jǐn)?shù)據(jù)更
26、新部分?jǐn)?shù)據(jù)是指根據(jù)指定條件更新表中的某一條或者某幾條記錄,需要使用WHERE子句來指定更新記錄的條件?!纠?-10】更新student表中id字段值為1的記錄,將記錄中的name字段的值更改為caocao, grade字段的值更改為50。在更新數(shù)據(jù)之前,首先使用查詢語句查看id字段值為1的記錄,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student -> WHERE id=1;+-+-+-+| id | name | grade |+-+-+-+| 1 | zhangsan | 98.5 |+-+-+-+1 row in set (0.00 sec)從查詢結(jié)果可
27、以看到,id字段值為1的記錄只有一條,記錄中name字段的值為zhangsan,grade字段的值為98.5。下面使用UPDATE語句更新這條記錄,SQL語句如下所示:UPDATE studentset name='caocao',grade=50WHERE id=1;上述SQL語句執(zhí)行成功后,會將id為1的數(shù)據(jù)進行更新。為了驗證數(shù)據(jù)是否更新成功,使用SELECT語句查看數(shù)據(jù)庫student中id為1的記錄,查詢結(jié)果如下所示:mysql> SELECT * FROM student -> WHERE id=1;+-+-+-+| id | name | grade |
28、+-+-+-+| 1 | caocao | 50 |+-+-+-+1 row in set (0.00 sec)從查詢結(jié)果可以看到,id字段值為1的記錄發(fā)生了更新,記錄中name字段的值變?yōu)閏aocao,grade字段的值變?yōu)?0。如果表中有多條記錄滿足WHERE子句中的條件表達式,則滿足條件的記錄都會發(fā)生更新?!纠?-11】更新student表中id字段值小于4的記錄,將這些記錄的grade字段值都更新為100。在更新數(shù)據(jù)前,首先使用查詢語句查看id字段值小4的記錄,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student -> WHERE id<4;+-
29、+-+-+| id | name | grade |+-+-+-+| 1 | caocao | 50 | 2 | lisi | 95 | 3 | wangwu | 61.5 |+-+-+-+3 rows in set (0.00 sec)從查看結(jié)果可以看到,id字段值小于4的記錄一共有3條,它們的grade字段值各不相同。下面使用UPDATE語句更新這3條記錄,UPDATE語句如下所示:UPDATE studentSET grade=100WHERE id<4;執(zhí)行UPDATE語句更新student表中的數(shù)據(jù),然后通過查詢語句查看更新后的數(shù)據(jù),執(zhí)行結(jié)果如下所示:mysql> SEL
30、ECT * FROM student -> WHERE id<4;+-+-+-+| id | name | grade |+-+-+-+| 1 | caocao | 100 | 2 | lisi | 100 | 3 | wangwu | 100 |+-+-+-+3 rows in set (0.00 sec)從查詢結(jié)果可以看出,id字段值為1、2、3的記錄其grade字段值都變?yōu)?00,這說明滿足WHERE子句中條件表達式的記錄都更新成功。2、 UPDATE更新全部數(shù)據(jù)在UPDATE語句中如果沒有使用WHERE子句,則會將表中所有記錄的指定字段都進行更新?!纠?-12】更新stud
31、ent表中全部11條記錄,將grade字段值都更新為80,UPDATE語句如下所示:UPDATE studentSET grade=80;執(zhí)行UPDATE語句更新student表中的數(shù)據(jù),接下來通過查詢語句查看更新后的記錄,SQL語句如下所示:mysql> select * from student;+-+-+-+| id | name | grade |+-+-+-+| 1 | caocao | 80 | 2 | lisi | 80 | 3 | wangwu | 80 | 4 | zhaoliu | 80 | NULL | sunbin | 80 | 5 | boya | 80 | 6
32、 | lilei | 80 | 7 | hanmeimei | 80 | 8 | poly | 80 | 9 | liubei | 80 | 10 | guanyu | 80 | 11 | zhangfei | 80 |+-+-+-+11 rows in set (0.00 sec)從查詢結(jié)果可以看出,student表中所有記錄的grade字段都變?yōu)?0,數(shù)據(jù)更新成功。3.3 刪除數(shù)據(jù)刪除數(shù)據(jù)是指對表中存在的記錄進行刪除,這是數(shù)據(jù)庫的常見操作,比如一個學(xué)生轉(zhuǎn)學(xué)了,就需要在student表中將其信息記錄刪除。MySQL中使用DELETE語句來刪除表中的記錄,其語法格式如下所示:DELETE FR
33、OM 表名 WHERE 條件表達式在上面的語法格式中,“表名”指定要執(zhí)行刪除操作的表,WHERE子句為可選參數(shù),用于指定刪除的條件,滿足條件的記錄會被刪除。DELETE語句可以刪除表中的部分?jǐn)?shù)據(jù)和全部數(shù)據(jù),下面就對這兩種情況進行講解:1、 DELETE刪除部分?jǐn)?shù)據(jù)刪除部分?jǐn)?shù)據(jù)是指根據(jù)指定條件刪除表中的某一條或者某幾條記錄,需要使用WHERE子句來指定刪除記錄的條件。【例3-13】在student表中,刪除id字段值為11的記錄,在刪除數(shù)據(jù)之前,首先使用查詢語句查看id字段值為11的記錄,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student -> WHERE i
34、d=11;+-+-+-+| id | name | grade |+-+-+-+| 11 | zhangfei | 80 |+-+-+-+1 row in set (0.02 sec)從查詢結(jié)果可以看到,student表中有一條id字段值為11的記錄,下面使用DELETE語句刪除這條記錄,DELETE語句如下所示:DELETE FROM studentWHERE id=11;執(zhí)行結(jié)果如下所示:mysql> DELETE FROM student -> WHERE id=11;Query OK, 1 row affected (0.00 sec)從執(zhí)行結(jié)果可以看出,DELETE語句成
35、功執(zhí)行,接下來再次通過查詢語句查看id字段為11的記錄,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student -> WHERE id=11;Empty set (0.00 sec)從查詢結(jié)果可以看到記錄為空,說明id字段為11的記錄被成功刪除。在執(zhí)行刪除操作的表中,如果有多條記錄滿足WHERE子句中的條件表達式,則滿足條件的記錄都會被刪除?!纠?-14】在student表中,刪除id字段值大于5的所有記錄,在刪除數(shù)據(jù)之前,首先使用查詢語句查看id字段值大于5的所有記錄,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student ->
36、 WHERE id>5;+-+-+-+| id | name | grade |+-+-+-+| 6 | lilei | 80 | 7 | hanmeimei | 80 | 8 | poly | 80 | 9 | liubei | 80 | 10 | guanyu | 80 |+-+-+-+5 rows in set (0.00 sec)從查詢結(jié)果可以看到,student表中id字段值大于5的記錄有5條,下面使用DELETE語句刪除滿足條件的這5條記錄,DELETE語句如下所示:DELETE FROM studentWHERE id>5;執(zhí)行DELETE語句刪除student表中的
37、數(shù)據(jù),然后再次通過查詢語句查看id字段值大于5的記錄,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student -> WHERE id>5;Empty set (0.00 sec)從查詢結(jié)果可以看到記錄為空,說明id字段置大于5的記錄被成功刪除了。2、 DELETE刪除全部數(shù)據(jù)在DELETE語句中如果沒有使用WHERE子句,則會將表中的所有記錄都刪除?!纠?-15】刪除student表中的所有記錄,在刪除數(shù)據(jù)之前首先使用查詢語句查看student表中的所有記錄,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM student;+-+-+-+|
38、 id | name |grade |+-+-+-+| 1 | caocao | 80 | 2 | lisi | 80 | 3 | wangwu | 80 | 4 | zhaoliu | 80 | NULL | sunbin | 80 | 5 | boya | 80 |+-+-+-+6 rows in set (0.00 sec)從查詢結(jié)果可以看出,student表中還有6條記錄,下面使用DELETE語句將這6條記錄全部刪除,DELETE語句如下所示:DELETE FROM student;執(zhí)行DELETE語句刪除student表中的數(shù)據(jù),然后再次通過查詢語句查看student表中的記錄,執(zhí)行
39、結(jié)果如下所示:mysql> SELECT * FROM student;Empty set (0.00 sec)從查詢結(jié)果可以看到記錄為空,說明表中所有的記錄成功刪除。&多學(xué)一招:使用關(guān)鍵字TRUNCATE刪除表中數(shù)據(jù)在MySQL數(shù)據(jù)庫中,還有一種方式可以用來刪除表中所有的記錄,這種方式需要用到一個關(guān)鍵字TRUNCATE,其語法格式如下:TRUNCATE TABLE 表名TRUNCATE的語法格式很簡單,只需要通過“表名”指定要執(zhí)行刪除操作的表即可。下面通過一個案例來演示TRUNCEATE的用法?!纠?-16】在數(shù)據(jù)庫chapter03中創(chuàng)建一張表tab_truncate,創(chuàng)建t
40、ab_truncate表的SQL語句如下所示:CREATE TABLE tab_truncate( id INT(3) PRIMARY KEY AUTO_INCREMENT, name VARCHAR(4);在創(chuàng)建的tab_truncate表中,id字段值設(shè)置了 AUTO_INCREMENT,在每次添加記錄時系統(tǒng)會為該字段自動添加值,id字段的默認初始值是1,每添加一條記錄,該字段值會自動加1。接下來向tab_truncate表中添加5條記錄,且只添加name字段的值,SQL語句如下所示:INSERT INTO tab_truncate(name)VALUES('A'),(
41、39;B'),('C'),('D'),('E');執(zhí)行INSERT語句向tab_truncate表中添加5條記錄,接下來通過查詢語句查看數(shù)據(jù)是否成功添加,執(zhí)行結(jié)果如下所示:mysql> SELECT * FROM tab_truncate;+-+-+| id | name |+-+-+| 1 | A | 2 | B | 3 | C | 4 | D | 5 | E |+-+-+5 rows in set (0.00 sec)從查詢結(jié)果可以看出,tab_truncate表中添加了5條記錄,且系統(tǒng)自動為每條記錄的id字段添加了值。接下來使用TRUNCATE語句刪除tab_truncate表中的所有記錄,TRUNCATE語句如下所示:TRUNCATE TABLE tab_truncate;執(zhí)行結(jié)果如下所示:mysql> TRUNCATE TABLE tab_truncate;Query OK, 0 rows affected (0.02 sec)從執(zhí)行結(jié)果可以看到TRUNCATE語句成功執(zhí)行,接下來通過查詢語句查看tab_truncate表中的記錄是否刪
溫馨提示
- 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版路燈照明設(shè)備維修保養(yǎng)服務(wù)合同4篇
- 二零二五年度房產(chǎn)股權(quán)轉(zhuǎn)讓合同(含使用權(quán)與物業(yè)管理)2篇
- 2025年度智能配送機器人承包合同范本4篇
- 二零二五年度出口產(chǎn)品購銷合同模板下載4篇
- 二零二五年度國際貿(mào)易法律事務(wù)咨詢與解決方案合同
- 2025版土地儲備與一級市場開發(fā)合作合同3篇
- 2025年度城市樓頂廣告資源合作合同3篇
- 二零二五年度品牌體驗店運營管理合同
- 2025年度人工智能領(lǐng)域投資入股合同
- 中外教育交流2024年外籍教師合同2篇
- 第1課 隋朝統(tǒng)一與滅亡 課件(26張)2024-2025學(xué)年部編版七年級歷史下冊
- 2025-2030年中國糖醇市場運行狀況及投資前景趨勢分析報告
- 冬日暖陽健康守護
- 水處理藥劑采購項目技術(shù)方案(技術(shù)方案)
- 2024級高一上期期中測試數(shù)學(xué)試題含答案
- 盾構(gòu)標(biāo)準(zhǔn)化施工手冊
- 山東省2024-2025學(xué)年高三上學(xué)期新高考聯(lián)合質(zhì)量測評10月聯(lián)考英語試題
- 不間斷電源UPS知識培訓(xùn)
- 三年級除法豎式300道題及答案
- 2024年江蘇省徐州市中考一模數(shù)學(xué)試題(含答案)
- 新一代飛機維護技術(shù)
評論
0/150
提交評論