DML语言(Data Manipulation Language)
数据操纵语言:插入、修改、删除。
插入
方式一:(经典)
insert into 表名(列名,…)values (值1,…);
1.插入类型与列一致;
2.不为空的字段必须赋值;
3.列的顺序可以调换;
4.列数和值个数必须一致;
5.省略列名,默认所有列名,顺序与表一致;
方式二:
insert into 表名 set 列名 = 值,列名=值…
两种方式对比:
方式一可以一次插入多行;
insert into beauty (id,name) values (1,‘qw’),(2,‘df’),(3,‘ff’);
方式一支持子查询;
insert into beauty(id,name,phone)
select id,name,‘13534567867’
from boys where id>3;
修改
1.修改单表(重点)
update 表名 set 列=新值,列=新值 where 筛选条件;
2.修改多表(补充)
sql92
update 表1 别名,表2 别名
set 列=值,…
where 连接条件
and 筛选条件
sql99
update 表1
inner、left、right join 表2
on 连接条件
where 筛选条件;
删除
方式一:
单表删除(重点)
delete from 表名 where 筛选条件;
多表删除(补充)
sql92
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件
sql99
delete 表1的别名,表2的别名(要删哪个表的记录写哪个表的别名)
from 表1 别名
inner、left、right join 表2
on 连接条件
where 筛选条件
delete b,bo
from beauty b
inner join boys bo
on b.boyfriendid = bo.id
where bo,id=5;
方式二:(删除表中全部数据)
truncate table 表名;
delete 和truncate区别:
1.delete 可以加where 筛选条件;
2.truncate效率高点;
3.如果表中有自增长列,delete之后插入数据自增长列值从断点开始,truncate之后插入数据自增长列值从1开始;
4.delete 有返回值,truncate 没有返回值;
5.delete可以回滚,truncate 不可以回滚;
学习整理于MySQL 基础+高级篇.