DML语言-删除
1 语法
方式一:delete
-
单表删除
语法:
delete from table_name where 筛选条件 -
多表的删除
sql92
delete 表1的别名,表2的别名
from 表1 别名,表2 别名
where 连接条件
and 筛选条件;sql99
delete 表1的别名,表2的别名
from 表1 别名
inner/left/right join 表2 别名 on 连接条件
where 筛选条件
方式二:truncate
truncate table 表名;
2 案例
- 删除手机号以9结尾的女神信息
delete from beauty where phone like '%9';
2.多表删除-删除张无忌女朋友的信息
delete b
from beauty b
inner join boys bo on b.boyfriend_id=bo.id
where bo.boyName='张无忌';
- 删除黄晓明的信息以及他女朋友的信息
delete b,bo
from beauty b
inner join boys bo on b.boyfriend_id=bo.id
where bo.boyName='黄晓明';
- 使用 truncate - 不能使用where (清空表)
3 总结
delete 和 trumcate 对比
- delete 可以加where t条件,truncate 不能加
- truncate 删除,效率高一些
- 加要删除的表中有自增长列,如果用delete删除后,在插入数据,自增长列的值从断点开始,而 truncate 删除后,再插入数据,自增长列的值从1开始。
- delete 删除有返回值,truncate 删除没有返回值
- delete 删除可以回滚,truncate 删除不能回滚