目录
1 概述
数据操作语言(Data Manipulation Language):插入(INSERT),修改(UPDATE),删除(DELETE)。
2 插入语句
2.1 方式一
语法:
INSERT INTO
表名(列名,...)
VALUES
(值,...);
注意:
- 插入的值的类型要与列的类型一致或兼容。
- 非NULL列必须插入值,未指定的属性列默认插入NULL。
- 插入值的顺序必须与列一致。
- 插入值的个数必须与列一致。
- 可以省略列名,默认所有列。
2.2 方式二
语法:
INSERT INTO
表名
SET
列名1 = 值1,
列名2 = 值2,
...,
列名n = 值n;
2.3 两种方式比较
-
方式一支持插入多行。
INSERT INTO 表名(列名,...) VALUES (值1,...), (值2,...), ... (值n,...);
-
方式一支持子查询,方式二不支持。
INSERT INTO 表名(列名,...) SELECT 列名 FROM 表名;
3 修改语句
3.1 修改单表的记录。
语法:
UPDATE
表名
SET
列1 = 新值1,
列2 = 新值2,
...,
列n = 新值n
WHERE
筛选条件;
3.2 修改多表的记录。
语法(SQL192):
UPDATE
表1 别名1,
表2 别名2,
...,
表n 别名n
SET
列1 = 新值1,
列2 = 新值2,
...,
列n = 新值n
WHERE
连接条件
AND
筛选条件;
语法(SQL199):
UPDATE
表1 别名1
[连接类型] JOIN
表2 别名2
ON
连接条件
SET
列1 = 新值1,
列2 = 新值2,
...,
列n = 新值n
WHERE
筛选条件;
4 删除语句
4.1 方式一
4.1.1 单表删除
语法:
DELETE FROM
表名
WHERE
筛选条件;
4.1.2 多表删除
语法(SQL192):
DELETE
别名1,
别名2
FROM
表1 别名1,
表2 别名2
WHERE
连接条件
AND
筛选条件;
语法(SQL199):
DELETE
别名1,
别名2
FROM
表1 别名1
[连接方式] JOIN
表2 别名2
ON
连接条件
WHERE
筛选条件;
4.2 方式二
TRUNCATE TABLE
表名;
4.3 两种方式比较
- DELETE可以加WHERE条件,TRUNCATE不用加。
- TRUNCATE效率比DELETE高。
- 加入删除的表中有自增长列,如果用DELETE删除,则自增长值从端点开始,如果用TRUNCATE删除,则自增长值从1开始。
- TRUNCATE删除没有返回值,DELETE删除有返回值。
- TRUNCATE删除不能回滚,DELETE删除可以回滚。