四、DML语言
简介
DML语言就是数据操作语言
主要操作
- 插入:insert
- 修改:update
- 删除:delete
插入语句
语法
方式一
- 支持多个:insert into 表名(列名.......) values(值.......),(值.......);
- insert into 表名(列名.......) value(值.......);
方式二
- insert into 表名 set 列名1=值1, set 列名1=值1;
区别
方式一支持插入多行,方式二不支持;
方式一支持子查询,方式二不支持。
注意
-
不能为空的列必须插入值
-
可为空的列插入值方式
-
- 如果不指定,数据库自动加入默认值
修改语句
修改单表
语法
update 表名 set 列名=值,列名=值 where 条件;
修改多表
语法
update user u inner jion user_address ua on u.id = ua.user_id
set ua.address='浙江杭州' where u.id = 1;
删除语句
DELETE
语法
单表:
delete from 表名 where 筛选条件;(如不加条件,默认删除全表)
多表:
sql 92语法:
delete 别名a, 别名b
from 表1 别名a, 表2 别名b
where 连接条件 and 筛选条件;
sql 99语法:
delete 别名1,别名2
from 表1 别名1 inner|left|right join 表2 别名2 on 连接条件
where 筛选条件;
TRUNCATE
语法
truncate table 表名; (不能加条件,删除全表)
两种删除总结
- delete 可以加条件,truncate 不能加条件;
- 如果想要清空表记录,使用 truncate 效率更高;
- 假如要删除的表中有自增长列,如果用delete删除,再插入数据,自增长的值从断点处开始,而 truncate 删除后,再插入数据,自增长列的值从1开始;
- truncate 删除没有返回值,delete 支持返回值(返回值指的是,几行受影响);
- truncate 没有事务回滚,delete 支持事务回滚。