Administrator
Published on 2021-08-17 / 157 Visits
0
0

MySQL核心之DML

DML

  • 数据操作语言

INSERT

单条插入

INSERT INTO 表名 SET 列名=值,列名=值,...;

多条插入

INSERT INTO 表名 (列名,...) VALUES (值1,...),(值2,...);

UPDATE

单表修改

UPDATE 表名 
SET 列=新值,列=新值,
...
WHERE
	筛选条件;

多表修改

SQL92

UPDATE 表1 别名,表2 别名 
SET 列=值,
...
WHERE
	连接条件 
	AND 筛选条件;

SQL99

UPDATE 表1 别名 INNER|LEFT|RIGHT JOIN 表2 别名 
ON 连接条件 
SET 列=值,
...
WHERE
	筛选条件;

DELETE

单表删除

DELETE 
FROM
	表名 
WHERE
	筛选条件;

多表删除

SQL92

DELETE 表1的别名,表2的别名 
FROM
	表1 别名,表2 别名 
WHERE
	连接条件 
AND 筛选条件;

SQL99

DELETE 表1的别名,表2的别名 
FROM
	表1 别名 INNER|LEFT|RIGHT JOIN 表2 别名 
ON 连接条件 
WHERE
	筛选条件;

TRUNCATE

TRUNCATE TABLE 表名;

DELETE 与 TRUNCATE 对比

  • DELETE 可以加 WHERE 条件,TRUNCATE 不能加
  • 假如要删除的表中有自增长列,如果用 DELETE 删除后,再插入数据,自增长列的值从断点开始,而 TRUNCATE 删除后,再插入数据,自增长列的值从1开始
  • TRUNCATE 删除没有返回值,DELETE 删除有返回值
  • TRUNCATE 删除不能回滚,DELETE 删除可以回滚

Comment