本文獻給與作者一樣不斷地在追求夢想的小夥伴!
文章目錄
INSERT插入數據 UPDATE更新數據 DELETE刪除數據 SELECT查看數據
增刪改查=CRUD=CREATE READ UPDATE DELETE
1.INSERT 語句爲表中所有字段添加數據
(1)可以指定所有字段名添加數據
(2)可以不指定字段名添加數據
(3)可以指定部分字段添加數據
(1)指定所有字段名添加數據
語法:
INSERT INTO 表名(字段名1,字段名2,...)
VALUES(值1,值2,....);
注意:
此處表名後必須列出表中所有字段的名稱;
每次添加時字段名的順序可以不一致;
“值 1,值 2,……”表示每個字段的值,每個值的順序、類型必須與對應的字段相匹配。
//創建lesson001庫,並在其中創建student表
CREATE DATABASE lesson001;
USE lesson001;
CREATE TABLE student(
id INT(4),
name VARCHAR(20) NOT NULL,
grade FLOAT
);
//使用 INSERT 語句向 student 表中插入一條數據
INSERT INTO student(id,name,grade)
VALUES(1,'zhangsan',77.3);
//使用 INSERT 語句向 student 表中插入多條數據
INSERT INTO student(name,id,grade)
VALUES('lisi',2,98),('cen',3,99),('xintin',4,98.9);
//使用 SELECT 語句查看 student 表中的數據
SELECT*FROM student;
(2)不指定字段名添加數據
語法:
INSERT INTO 表名 VALUES(值 1,值 2,……);
注意:
由於 INSERT 語句中沒有指定字段名,添加的值的順序必須和字段在表中定義的順序相同
其餘注意事項參照第一種
INSERT INTO student
VALUES(5,'mingming',87);
(3)指定部分字段添加數據
注意:
語法有兩種一種與第一種類似,只是不需列出所有字段名
其餘注意事項參照第一種
sql 語法二: INSERT INTO 表名 SET 字段名 1=值 1[,字段名 2=值 2,……]
//方法一:
INSERT INTO student(id,name)
VALUES(6,'qingqing');
//方法二:向指定部分字段添加數據
INSERT INTO student
SET id=6,name='qingqing'; //未被添加數據的字段保持爲定義時的默認值
2.使用 UPDATE 語句更新表中數據
語法:
UPDATE 表名 SET 字段名 1 = 值 1[,字段名 2 = 值 2,……] [WHERE 條件表達式]
(1)UPDATE更新部分數據
使用WHERE子句來指定更新記錄的條件
sql> SELECT*FROM student WHERE id=1;
sql> UPDATE sdudent SET name='nini',grade=90 WHERE id=1;
注意:
如果表中有多條記錄滿足 WHERE 子句中的條件表達式,則滿足條件的記錄都會發生更新。sql> UPDATE student SET grade=99 WHERE id<10;
(2)UPDATE更新全部數據
未使用WHERE子句來指定更新記錄的條件,即會更新某字段的所有數據。
如圖:
3.使用 DELETE 語句來刪除表中的記錄
(1)、 DELETE 刪除部分數據
WHERE子句判斷條件與UPDATE時用法相似
語法:
DELETE FROM 表名 [WHERE 條件表達式]
示例:
DELETE FROM student WHERE id<5;
(2). DELETE 刪除全部數據
語法:
DELETE FROM student;
與UPDATE更新全部數據類似
4.使用TRUNCATE刪除表中所有的記錄
語法:
TRUNCATE TABLE 表名;
//創建表並以id爲主鍵
CREATE TABLE tab_truncate(
id INT(4) PRIMARY KEY AUTO_INCREMENT, //id 字段值設置了 AUTO_INCREMENT,id 字段的默認初始值是 1,在每次添加記錄時系統會爲該字段 自動添加值,即該字段值會自動加 1。
name VARCHAR(10),
sex CHAR(5)
);
//添加數據
INSERT INTO tab_truncate(name,sex)
VALUES('nini','男'),('titi','女'),('mimi','男');
SELECT*FROM tab_truncate;//查看數據
TRUNCATE TABLE tab_truncate;//使用TRUNCATE刪除表中所有的記錄
SELECT * FROM tab_truncate; //查看數據
//添加數據,發現id又是從1開始遞增
INSERT INTO tab_truncate(name,sex)
VALUES('nini','男'),('titi','女'),('mimi','男');
SELECT * FROM tab_truncate;
DELETE FROM tab_truncate;
//添加數據
INSERT INTO tab_truncate(name,sex)
VALUES('nini','男');
SELECT * FROM tab_truncate;//發現id是從刪除前最大值+1開始遞增
總結TRUNCATE與DELETE的區別:
1.使用 TRUNCATE 語句刪除表中的數據後,再次向表中添加記錄時,自動增加字段的默認初始值重 新由 1 開始,而使用 DELETE 語句刪除表中所有記錄後,再次向表中添加記錄時,自動增加字段的值爲刪除時該字段的最大值加 1。
2.使用 DELETE 語句時,每刪除一條記錄都會在日誌中記錄,而使用 TRUNCATE 語句時,不會在 日誌中記錄刪除的內容,因此 TRUNCATE 語句的執行效率比 DELETE 語句高。
3.、DELETE 語句後面可以跟 WHERE 子句,通過指定 WHERE 子句中的條件表達式只刪除滿足條件的部分記錄也可以不跟WHERE 子句,而 TRUNCATE 語句只能用於刪除表中的所有記錄 。
4.DELETE 語句是 DML 語句,TRUNCATE 語句通常被認爲是 DDL 語句。DELETE與TRUNCATE的比喻:
將DELETE與TRUNCATE執行性質看作‘伐樹’,DELETE是用斧頭將樹的枝葉砍掉最後砍倒樹幹而TRUNCA則是用挖掘機將樹連根拔起,砍倒的樹仍然可以從樹根上生長出幼苗,而後者卻只能重新生長出幼苗。