一、方式一:delete
1、单表的删除
语法:
delete from 表名 【where 筛选条件】【limit 删除条数】;
eg1.删除手机号最后一位为9的女生信息
DELETE FROM beauty WHERE phone LIKE '%9';
2、多表的删除
语法(sql92):
delete 要删除的表的别名
from 表1 别名1,表2 别名2
where 连接条件
and 筛选条件;
语法(sql92):
delete 要删除的表的别名
from 表1 别名
inner / left / right / join 表2 别名
on 连接条件
where 筛选条件
eg1.删除段誉的女朋友的信息
DELETE b
FROM beauty AS b
INNER JOIN boys AS bo
ON b.`boyfriend_id`=bo.`id`
WHERE bo.`boyName`='段誉';
二、方式一:truncate
语法:
truncate table 表名;
不能添加筛选条件,只能一个表全部删除
#两种删除方式比较
【⭐经典面试题】
1、delete可以添加where条件,truncate不可以
2、truncate删除效率更高
3、假如要删除的表中有自增长列,
如果使用delete删除后,再插入数据,自增长列的值从断点开始;
如果使用truncate删除后,再插入数据,自增长列的值从1开始
4、truncate删除没有返回值,delete删除有返回值
eg.TRUNCATE TABLE boys; #不返回受影响的行数
5、truncate删除不能回滚,delete删除可以回滚