美文网首页
mysql: 删除

mysql: 删除

作者: 哈斯勒 | 来源:发表于2019-08-26 11:55 被阅读0次
方式一:delete
语法:
1.单表的删除
delete from 表名 where 筛选条件
SELECT * FROM beauty
WHERE phone LIKE '%9';

DELETE FROM beauty
WHERE phone LIKE '%9';


# 删除手机号以9结尾的

2. 多表的删除
sql92:
delete 表1的别名,表2的别名
from 表1 别名, 表2 别名
where 连接条件
and 筛选条件;

sql99语法:
delete 表1的别名,表2的别名
from 表1,别名
inner | left | right join 表2 别名
on 连接条件
where 筛选条件;

# 多表的删除
#删除张无忌的女朋友信息
SELECT * FROM beauty gg
INNER JOIN boys bb
ON gg.`boyfriend_id`=bb.`id`
WHERE bb.`boyName`='张无忌';

#删除两个表中的数据
DELETE gg, bb
FROM beauty gg
INNER JOIN boys bb
ON gg.`boyfriend_id`=bb.`id`
WHERE bb.`boyName`='张无忌';

# 只删除一个表中的数据
DELETE gg
FROM beauty gg
INNER JOIN boys bb
ON gg.`boyfriend_id`=bb.`id`
WHERE bb.`boyName`='张无忌';

# 删除黄晓明及其女朋友信息
DELETE gg, bb
FROM beauty gg
INNER JOIN boys bb
ON gg.`boyfriend_id`=bb.`id`
WHERE bb.`boyName`='黄晓明';

方式二:truncate 
清空表中所有数据,不支持添加where 条件
语法: truncate table 表名; 删除表中所有数据

两种方式比较:
1.delete 可以添加where条件,truncate不可以
2. truncate删除效率高一些
3. 假如要删除的表中有自增长列,
   如果用delete删除后,再插入数据,自增长列从1开始
   而truncate删除后,在插入数据,自增长列充1开始
4.truncate删除没有返回值,delete删除有返回值,显示几行受影响
5.truncate删除不能回滚,delete可以回滚 

相关文章

网友评论

      本文标题:mysql: 删除

      本文链接:https://www.haomeiwen.com/subject/zddrectx.html