mySQL初學者一定要掌握的數據操縱

本文獻給與作者一樣不斷地在追求夢想的小夥伴!

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則是用挖掘機將樹連根拔起,砍倒的樹仍然可以從樹根上生長出幼苗,而後者卻只能重新生長出幼苗。

想複習《mySQL數據庫與表的基本操作》的小夥伴可以閱讀這篇哦!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章