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 删除可以回滚