一、删除语句
1、方式一
(1)单表的删除
1 | delete from 表名 【 where 筛选条件】【limit条目数】 |
如果没有指定 where 子句,MySQL 表中的所有记录将被删除,可以在 where 子句中指定任何条件。
(2)多表的删除【补充】
SQL92 语法:
1 2 3 4 | delete 表1的别名, 表2的别名 from 表1 别名, 表2 别名 where 连接条件 and 筛选条件 |
SQL99 语法:
1 2 3 4 5 | delete 表1的别名, 表2的别名 from 表1 别名 inner | left | right join 表2 别名 on 连接条件 where 筛选条件 |
2、方式二
语法格式:
1 | truncate table 表名; |
二、案例
1、delete 案例
(1)单表的删除:删除手机号以 9 结尾的女生信息
1 | DELETE FROM beauty WHERE phone LIKE '%9' ; |
(2)多表的删除:删除张无忌的女朋友的信息
1 2 3 4 5 6 7 8 9 10 11 | SELECT b.* FROM beauty b INNER JOIN boys bo ON b.`boyfriend_id` = bo.`id` WHERE bo.`boyName` = '张无忌' ; DELETE b FROM beauty b INNER JOIN boys bo ON b.`boyfriend_id` = bo.`id` WHERE bo.`boyName` = '张无忌' ; |
使用删除的时候建议使用查询语句先查询。
(3)多表同时删除:删除黄晓明信息及女朋友信息
1 2 3 4 5 | DELETE b, bo FROM beauty b INNER JOIN boys bo ON b.`boyfriend_id` = bo.`id` WHERE bo.`boyName` = '黄晓明' ; |
2、truncate 案例
将魅力值大于 100 的男神信息删除(注意:truncate不能添加筛选条件)
1 | TRUNCATE TABLE boys WHERE usercp > 100; |
truncate 相当于把表中的数据清空,只保留表的结构。
三、delete 与 truncate
1、delete 可以添加筛选条件,truncate 不可以添加筛选条件;
2、truncate 效率较高;
3、truncate 没有返回值,delete 可以返回受影响的行数;
4、truncate 不可以回滚,delete 可以回滚;
5、假如要删除的表中有自增长列,
truncate 删除后,如果再插入,标识列从1开始;
delete 删除后,如果再插入,标识列从断点开始;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· 没有源码,如何修改代码逻辑?
· NetPad:一个.NET开源、跨平台的C#编辑器
· 面试官:你是如何进行SQL调优的?
2019-06-23 15HTML5新增文本标签
2019-06-23 00HTML【目录】
2019-06-23 16HTML5表单新增内容
2019-06-23 18HTML5多媒体标签
2019-06-23 12HTML注释与特殊字符
2019-06-23 11HTML表单
2019-06-23 10HTML表格