DML语言——插入、修改、删除
DML:Data Manipulation Language
DML为用户提供添加、删除、更新数据的能力,这些是应用程序对数据库的日常操作。
1. 插入语句
1.1. 方式一
-
语法
insert into 表名(列名,...) values(值1,...);
-
需要注意的地方
- 插入的值的类型要与列的类型一致或兼容
- 不可以为null的列必须插入值,可以为null的列可以不插入值,用null代替,或直接省略列名和值
- 列名顺序可以改变,只需值与列名一一对应
- 列名和值的个数必须一致
- 可以省略列名,默认是所有列,而且列的顺序和表中列的顺序一致
-
支持插入多行
insert into 表名(列名,...) values(值1,...) ,(值1,...) ,(值1,...) ...;
-
支持子查询
insert into 表名(列名) select语句
1.2. 方式二
-
语法
insert into 表名 set 列名=值,列名=值,...;
-
不支持插入多行,子查询
2. 修改语句
修改单表的记录:
-
语法
update 表名 set 列名=新值,列名=新值,... where 筛选条件;
修改多表的记录:
-
语法
update 表1 别名 inner|left|right join 表2 别名 on 连接条件 set 列名=值,列名=值,... where 筛选条件
3. 删除语句
方式一
-
单表的删除,删除整行
delete from 表名 where 筛选条件
-
多表的删除
delete 表1的别名,表2的别名 from 表1 别名 inner|left|right join 表2 别名 on 连接条件 where 筛选条件;
方式二
-
truncate语句
truncate table 表名;
-
不支持加筛选条件,直接全删
-
假如要删除的表中有自增长列,如果用delete删除后,再插入数据,自增长列的值从断点开始;而truncate删除后,再插入数据,自增长列的值从1开始
-
truncate删除没有返回值,delete删除有返回值
-
truncate删除不能回滚,delete删除可以回滚