在上一章初识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;