WHCSRL 技术网

INSERT、UPDATE、DELETE、TRUNCATE指令详解

DML语言:

DML(Data Manipulation Language),数据操纵语言,在SQL语言中,负责对数据库对象运行数据访问工作的指令集,以INSERT、UPDATE、DELETE三种指令为核心,分别代表插入、更新与删除。

INSERT INTO

用于向表中插入新记录。

#方式1:
#需要指定列名和被插入的值(列可以调换顺序,但是要和值一一对应)
INSERT INTO 表名(列名1...) VALUES(1...);

#插入多行,每个VALUES()以逗号隔开
INSERT INTO 表名(列名1...) VALUES(1...),VALUES(1...)...;

#无需指定要插入数据的列名,只需提供被插入的值即可(默认所有列,而且顺序要和表中列的顺序一致):
INSERT INTO 表名 VALUES(1...);

#插入多行,每个VALUES()以逗号隔开
INSERT INTO 表名 VALUES(1...),VALUES(1...)...;

#方式2:
INSERT INTO 表名
SET 列名=值,列名=...
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16

方式一支持多行插入,方式二不支持,方式一支持子查询,方式二不支持;

UPDATE

用于修改表中记录的数据

修改单表

语法格式:

UPDATE 表名
SET 列名=,列名=,...
WHERE 筛选条件;
  • 1
  • 2
  • 3

修改多表

语法格式:

UPDATE1
连接类型【INNER,LEFT OUTER,RIGHT OUTERJOIN2
ON 连接条件
SET 列名=,列名=,...
  • 1
  • 2
  • 3
  • 4

DELETE

用于删除表中记录

单表删除:

语法格式:

DELETE FROM 表名
WHERE 筛选条件;	
  • 1
  • 2

多表删除:

语法格式:

DELETE 表名(要删除那个表的就写那个,也可以写多个) FROM1
连接类型【INNER,LEFT OUTER,RIGHT OUTERJOIN2
ON 连接条件
WHERE 筛选条件;	
  • 1
  • 2
  • 3
  • 4

举例说明

(以上面的工资等级表(salgrade)和员工表(employees),删除工资等级为1的员工信息)

DELETE e
FROM employees e
INNER JOIN salgrade s
ON e.`SAL` BETWEEN s.`LOSAL` AND s.`HISAL`
WHERE s.`GRADE`=1;
  • 1
  • 2
  • 3
  • 4
  • 5

TRUNCATE语句

语法格式:

TRUNCATE TABLE 表名;
  • 1

DELETE和TRUNCATE区别

  1. DELETE可以加WHERE语句,TRUNCATE不能;
  2. 如果要删除的表中有自增长列,用DELETE删除,再插入数据,自增长列的值从断点开始,而用TRUNCATE删除后再插入数据,自增长列的值是从1开始。
  3. DELETE删除有返回值,TRUNCATE删除没有返回值。
  4. TRUNCATE删除不能回滚,而DELETE删除可以回滚。
推荐阅读