在上一章初識MySQL了解了如何定義數據庫和數據表(DDL),接下來我們開始開始深入其數據,對其數據進行訪問(DAL)、查詢DQL()和操作(DML)等。
通過DML
語句操作管理數據庫數據
DML (數據操作語言) 是SQL語言中用于檢索和操作數據庫中數據的一組語法元素。主要包括INSERT、UPDATE、DELETE語句,以及用于過濾數據的WHERE子句。
DML(數據操作語言)
DML 是用于添加、修改、刪除和查詢數據庫中數據的語言。它包括以下幾種類型的語句:
INSERT
用于向數據庫表中添加新的數據行。UPDATE
用于修改數據庫表中的現有數據。DELETE
用于從數據庫表中刪除數據。SELECT
用于查詢數據庫表中的數據(雖然通常被認為是DQL,但在某些情況下也被歸類為DML)。
添加數據
使用 INSERT INTO
語句向表中添加新記錄。
INSERT INTO 表名稱 (列1, 列2, 列3, ...)
VALUES (值1, 值2, 值3, ...);
修改數據
使用 UPDATE
語句修改表中已存在的記錄。
UPDATE 表名稱
SET 列1 = 值1, 列2 = 值2, ...
WHERE 條件;
WHERE 條件子句
WHERE
子句用于限定 SELECT
、UPDATE
和 DELETE
操作的數據范圍。
SELECT 列名稱 FROM 表名稱
WHERE 條件;UPDATE 表名稱
SET 列名稱 = 新值
WHERE 條件;DELETE FROM 表名稱
WHERE 條件;
刪除數據
使用 DELETE
語句從表中刪除記錄。
DELETE FROM 表名稱
WHERE 條件;
清空數據
使用 TRUNCATE TABLE
語句來刪除表中的所有行,這個操作不能被回滾。與使用 DELETE
刪除表中所有行相比,TRUNCATE TABLE
通常更快,并且會重置表的自增計數器(如果有的話)。
TRUNCATE TABLE 表名稱;
請注意,TRUNCATE TABLE
不像 DELETE
語句那樣使用 WHERE
子句,因為 TRUNCATE
操作會刪除表中的所有行。另外,TRUNCATE
通常是一個不能回滾的操作,并且在某些數據庫中,它可能需要更高的權限才能執行,因為它會直接刪除數據,而不是一行行地刪除。
請注意,沒有提供WHERE子句將會影響表中的所有記錄(在 UPDATE
或 DELETE
操作中特別危險)。
建了一個公眾號(音耀),后續會在上面更新一些有用資源和筆記,大家有興趣的話可以加一下謝謝了。
大家現在看下面的sql語句都懂了吧
SELECT * FROM student;
SELECT * FROM grad1;#添加
insert into grad1 (gradeid,gradename,remark1) VALUES(10,'大三','二樓')INSERT into student VALUES (0,"wangwu",'123456','wangwu@qq.com')\INSERT into student(stuname,gradeid)VALUES ("zhangliu",2);INSERT into student VALUES(0,'王五','13505692563','wangwu@qq.com')INSERT into student(stuname,gradeid)VALUES ("zhangliu",2),("lishi",3),('wangwu',1);#把所有電話為空的學生 改為18345699876
UPDATE student Set email = 'anojh@qq.com';
UPDATE student set phone ='18934567890'
WHERE phone is Null;#把學生編號為2和 phone = '13668966987'的年級改為10,email= 'list@qq.com'
UPDATE student set gradeid=10,email='list@qq.com'
WHERE stuno =2 and phone = '13668966987';SELECT * FROM `subject`
#
update `subject` set classhour=classhour-10
WHERE classhour>110 and gradeid=1#刪除
DELETE from student;
TRUNCATE TABLE student;#效率高一點
drop TABLE student;