删除的方式一 delete
删除的方式一
语法:
DELETE FROM 表 【WHERE 条件】
1、案例:删除电话号码的长度小于11位的女神信息
DELETE FROM beauty
WHERE LENGTH(phone)<11;
2、案例:删除小燕子
DELETE FROM beauty
WHERE NAME='小燕子';
删除的方式二 多表级联删除
DELETE 别名1,别名2 FROM 表1 别名1,表2 别名2
WHERE 连接条件
AND 筛选条件
1、案例:将张无忌的女朋友都删除
DELETE b FROM beauty b,boys bo
WHERE b.boyfriend_id=bo.id
AND bo.boyname='张无忌';
2、案例:将黄晓明的女朋友信息和黄晓明都删除
DELETE b,bo FROM beauty b,boys bo
WHERE b.`boyfriend_id`=bo.`id`
AND bo.`boyName`='黄晓明';
3、案例:将没有男朋友的女神删除
DELETE b FROM beauty b
LEFT JOIN boys bo ON b.`boyfriend_id`=bo.`id`
WHERE bo.`id` IS NULL
删除的方式三 TRUNCATE
语法:
TRUNCATE TABLE 表名
1、案例:删除beauty表的记录
TRUNCATE TABLE beauty
二种删除方式的区别【面试题】
# 1、TRUNCATE不能加WHERE条件,而DELETE可以加WHERE
# 2、TRUNCATE效率较高
# 3、TRUNCATE不能删除多表,而DELETE可以
# 4、删除带标识列字段的表时,TRUNCATE 删除后再插入,标识列的值从1开始
# DELETE删除后再插入,标识列的值从端点处开始
# 5、TRUNCATE删除后,不能回滚;DELETE删除可以回滚
SELECT * FROM beauty;
DELETE FROM beauty;
INSERT INTO beauty(NAME,phone)
SELECT '唐艺昕2','999' UNION
SELECT '李沁2','888' UNION
SELECT '董洁2','777'