随笔 - 1162  文章 - 0  评论 - 16  阅读 - 59万 

一、删除语句

  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 删除后,如果再插入,标识列从断点开始;

 

posted on   格物致知_Tony  阅读(289)  评论(0编辑  收藏  举报
编辑推荐:
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题: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表格
点击右上角即可分享
微信分享提示

目录导航