DML(Data Manipulation Language):数据操作语言
插入:insert
修改:update
删除:delete
一、插入语句
1.方式一
语法
INSERT INTO 表名(字段名1,...) VALUES(值1,…);
特点
- 字段类型和值类型一致或兼容,而且一一对应
- 可以为空的字段,可以不用插入值,或用null填充
- 不可以为空的字段,必须插入值
- 字段的顺序可以调换
- 字段个数和值的个数必须一致
- 字段可以省略,但默认所有字段,并且顺序和表中的存储顺序一致
2.方式二
语法
INSERT INTO 表名
SET 字段1=值1,字段2=值2...
3.两种方式对比
- 方式一支持多行插入
- 方式一支持子查询,方式二不支持
二、修改语句
1.修改单表的记录
语法
UPDATE 表名
SET 列1=新值1,列2=新值2, ...
WHRE 筛选条件
2.修改多表的记录
语法
//sql92
UPDATE 表1 别名1,表2 别名2
SET 列1=值1,...
WHERE 连接条件
AND 筛选条件
//sql99
UPDATE 表1 别名1
【连接类型】 JOIN 表2 别名2
ON 连接条件
SET 列1=值1,...
WHERE 筛选条件
例1:修改张无忌女朋友的手机号为114
UPDATE beauty g
INNER JOIN boy b
ON g.boyfriend_id=b.id
SET g.phone='114'
WHERE b.name='张无忌';
例2:修改没有男朋友的女神的男朋友编号都为1号
UPDATE beauty g
INNER JOIN boy b
ON g.boyfriend_id=b.id
SET g.boyfriend_id=1
WHERE g.boyfriend_id IS NULL;
三、删除语句
方式一 delete
1. 单表的删除
语法
DELETE FROM 表名 WHERE 筛选条件
2. 多表的删除
语法
DELETE 别名1/别名2
FROM 表1 别名1,表2 别名1
WHERE 连接条件
AND 筛选条件
//sql99
DELETE 别名1/别名2
FROM 表1 别名1
【连接类型】 JOIN 表2 别名2
ON 连接条件
WHERE 筛选条件
例:删除张无忌的女朋友的信息
DELETE g
FROM beauty g
INNER JOIN boys b
ON g.boyfriend_id=b.id
WHERE b.name='张无忌'
方式二 truncate
truncate不可加筛选,清空表
语法
TRAUNCATE TABLE 表名
两种方式对比
- delete可以加筛选,truncate不可以
- truncate没有返回值,delete有返回值为受影响行数
- truncate不能回滚,delete可以回滚【事务】