DML语言,数据操作语言,主要包括:插入(insert)、修改(update)、删除(delete)。----mysql数据库的增删改
一、插入语句
方式一:
语法:insert into 表名 (列名,....)
values(值1,....);
1.插入的值的类型要与列的类型一致或兼容
char,varchar均需要使用单引号引起;int无需单引号;
2.不可以为null的列必须插入值,可以为null的列
3.列的顺序可以进行调换
4.列数和值的个数必须是一致的
5.可以省略列名,默认所有列,且列的顺序和表中的顺序一致。
方式二:
语法:insert into 表名 set 列名1=值1,列名2=值2,...;
两种方式的比较:
1.方式一支持多行插入,方式二不支持一次性插入多行。
2.方式一支持子查询,方式二不支持子查询。
二、修改语句
1.修改单表的记录
语法:update 表名
set 列=新值,列=新值,...
where 筛选条件;
2.修改多表的记录
语法:update 表1 别名
inner|left|right join 表2 别名
on 连接条件
set 列名=新值
where 筛选条件;
update boys bo
right join beauty b on bo.id=b.boyfriend_id
set b.boyfriend_id=2
where bo.id is null;
三、删除语句
方式一:delete
语法:
1.单表的删除
delete from 表名 where 筛选条件
2.多表的删除
delete 表1的别名,表2的别名 from 表1 别名 inner|left|right join 表2 别名 on 连接条件 where 筛选条件;
方式二:truncate语句
语法:truncate table 表名; truncate只会删除表中的全部数据。
delete与truncate的区别:
1.delete可以加where条件,truncate不能添加筛选条件
2.truncate删除表中的全部数据,效率比delete高
3.假如要删除的表中有自增长列,如果使用delete删除后,在插入数据,自增长列的值从断点开始,而truncate删除后,在插入数据,自增长列的值从1开始。
4.truncate删除表值无返回值,delete删除表时有返回值。
5.truncate删除不能回滚,delete删除可以回滚。