前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >MySQL删除数据Delete 语句、Trunca…

MySQL删除数据Delete 语句、Trunca…

作者头像
用户2192970
发布于 2019-02-22 08:55:57
发布于 2019-02-22 08:55:57
3.4K0
举报
文章被收录于专栏:杨飞@益术杨飞@益术

恶人自有恶人磨,如果数据库里面的数据有问题了,或者是有人捣乱,再或者就是您老人家看这条数据不爽,还有就是您想毁灭证据(其实总是会留下痕迹的)的时候,你就需要了解MySQL的Delete语句了。MySQL为我们提供了delete和truncate语句来删除数据。

delete 语句的定义:

经常和数据库打交道的孩子们,删除数据的时候用的大多都是 delete 语句。现在让我们来看一下 delete语句的定义。

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]

这里补充说明一下,也许有人要问了:”小小子,你也太懒了,抄手册上面的语法结构都不抄全。那些多表删除的语法结构为啥不写呢?“ 我的答案是”这里是博客小站,不可能面面俱到,只能列出平时用的最多的语法,至于一些更高深的东西,也许以后会介绍到,但是现在不在此篇日志讨论之列“, YY完毕。

delete 语句的示例:

MySQL的这些语法都和口语类似,你要指出你想从哪个表删除数据,还有删除哪些数据,这就够了。就像写记叙文的时候,时间、地点、人物、环境、情节几要素必不可少一样。

示例是最形象,最能说明问题的。所以,不整没用的了,直接进入主题。按照上面的语法结构,我想删除 firends 表中所有 user_name 等于 simaopig 的记录,就可以使用如下SQL语句:

delete from friends where user_name = 'simaopig';

delete 注意事项:

从语法结构中,我们就可以看出,和 update 语法一样,我们是可以省略 where 子句的。不过这是一个很危险的行为。因为如果不指定 where 子句,delete 将删除表中所有的记录,而且是立即删除,即使你想哭都没有地方,也没有时间,因为你需要马上和主管承认错误,并且立即找出MySQL日志,来回滚记录。不过一旦你有过一次这样的经历,我相信这一定是印象深刻的。

truncate 语句的简单说明:

这个语句之前我也没有接触过,也没有使用过。因为一般情况下,删除数据大家都在使用delete语句。其实这个 truncate 命令很简单,它的意思是:删除表的所有记录。相当于 delete 语句不写 where 子句一样。其语法结构为:

TRUNCATE [TABLE] tbl_name

这里简单的给出个示例,我想删除 friends 表中所有的记录,可以使用如下语句:

truncate table friends;

truncate 和 delete的效率问题:

如果想要删除表的所有数据,truncate语句要比 delete 语句快。因为 truncate 删除了表,然后根据表结构重新建立它,而 delete 删除的是记录,并没有尝试去修改表。这也是为什么当向一个使用 delete 清空的表插入数据时,MySQL 会记住前面产生的AUTOINCREMENT序列,并且继续利用它对AUTOINCREMENT字段编号。而truncate删除表后,表是从1开始为autoincrement字段编号。

不过truncate命令快规快,却不像delete命令那样对事务处理是安全的。因此,如果我们想要执行truncate删除的表正在进行事务处理,这个命令就会产生退出并产生错误信息。

转自: http://blog.csdn.net/BigBird2012/article/details/6340424

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2013年11月11日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【重学 MySQL】五十一、更新和删除数据
为了更新(修改)表中的数据,可使用UPDATE语句。UPDATE语句的基本语法如下:
用户11332765
2024/10/28
1510
【重学 MySQL】五十一、更新和删除数据
MySQL DDL 数据定义
在 MySQL 中,DATABASE 和 SCHEMA 在语法上是等效的,它们都用于创建数据库。在其他 RDBMS(如 Oracle 和 SQL Server)
恋喵大鲤鱼
2023/10/12
3090
MySQL DELETE语句和TRUNCATE TABLE语句的区别
MySQL DELETE语句和TRUNCATE TABLE语句功能相似,但是二者究竟有何区别呢?下文就将为您分析MySQL DELETE语句和TRUNCATE TABLE语句的区别,供您参考。 在MySQL中 有两种方法可以删除数据,一种是MySQL DELETE语句,另一种是MySQL TRUNCATE TABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。 如果要清空表中的所有记录,可以使用下面
wangxl
2018/03/08
2.1K0
MySQL(九)插入、更新和删除
常用的SQL语句,除了select用于查询,还有insert、update、delete等。
allsmallpig
2021/02/25
2.2K0
【说站】mysql清空、删除数据表的命令详解
mysql有好几种删除和清空数据表的命令,但每个命令的用法具体来说不一样,下面具体说说truncate、drop和del三个命令:
很酷的站长
2022/11/24
3.4K0
【说站】mysql清空、删除数据表的命令详解
入门MySQL——DML语句篇
在上篇文章中,主要为大家介绍的是DDL语句的用法,可能细心的同学已经发现了。本篇文章将主要聚焦于DML语句,为大家讲解表数据相关操作。
MySQL技术
2019/09/08
8380
MySQL数据库面试题(2020最新版)必知必会
如需有条件地从表中选取数据,可将 where 子句添加到select语句中。 SELECT field1, field2,...fieldN FROM table_name1, table_name2... [WHERE condition1 [AND [OR]] condition2.....
JavaEdge
2021/02/22
1.2K0
MySQL数据库面试题(2020最新版)必知必会
mysql如何正确的删除数据(drop,delete,truncate)
DROP 命令用于删除整个数据库或表。如果你想要删除整个数据库,可以使用如下命令:
一只牛博
2025/05/30
150
1.delete
在 MySQL 中,删除的方法总共有 3 种:delete、truncate、drop,而三者的用法和使用场景又完全不同,接下来我们具体来看。
磊哥
2022/06/12
6150
1.delete
入门MySQL——基础语句篇
前面几篇文章,我们介绍了MySQL的基础概念及逻辑架构。相信你现在应该有了自己的一套MySQL环境,接下来我们就可以开始练习MySQL了。本文将从MySQL最基础的语句出发,为你展示出创建及修改不同对象应该使用的标准语句。
MySQL技术
2019/09/08
4740
删除数据 delete、truncate 命令
二、delete 支持事务,可以进行事务回滚;truncate 不支持事务,不能执行事务回滚
很酷的站长
2023/02/21
9820
删除数据 delete、truncate 命令
php清空mysql数据表,mysql怎么清空数据表数据[通俗易懂]
在mysql中,可以利用“DELETE”和“TRUNCATE”关键字来清空数据表中的数据,具体语法为“DELETE FROM 数据表;”和“TRUNCATE TABLE 数据表;”。
全栈程序员站长
2022/08/25
13.2K0
php清空mysql数据表,mysql怎么清空数据表数据[通俗易懂]
MySQL必知必会分页whereupdatelimit字符串截取order by排序ength和char_lengthreplace函数1 键2 数据库事务的ACID3 视图4 删除连接
分页 方式1: select * from table order by id limit m, n; 该语句的意思为,查询m+n条记录,去掉前m条,返回后n条记录。无疑该查询能够实现分页功能 但是如果m的值越大,查询的性能会越低(越后面的页数,查询性能越低),因为MySQL同样需要扫描过m+n条记录。 方式2: select * from table where id > #max_id# order by id limit n; 该查询每次会返回n条记录,却无需像方式1扫描过m条记录,在大数据
JavaEdge
2018/05/16
2.3K0
Truncate用法详解
当我们想要清空某张表时,往往会使用truncate语句。大多时候我们只关心能否满足需求,而不去想这类语句的使用场景及注意事项。本篇文章主要介绍truncate语句的使用方法及注意事项。
MySQL技术
2020/05/19
5.9K0
MySQL DELETE 语句
你可以使用 SQL 的 DELETE FROM 命令来删除 MySQL 数据表中的记录。
iOS Magician
2023/05/05
2.8K0
MySQL删除表数据、清空表命令(truncate、drop、delete 区别)
MySQL、Mariadb、PostgreSQL删除表数据、清空表命令 都可用以上三种命令。
寻求出路的程序媛
2024/02/21
35.7K1
【重学 MySQL】四十七、表的操作技巧——修改、重命名、删除与清空
在MySQL中,我们经常需要对已存在的表进行修改,以满足不断变化的数据存储需求。这通常包括添加新列、删除现有列、修改列的数据类型或约束条件等操作。
用户11332765
2024/10/28
3080
【重学 MySQL】四十七、表的操作技巧——修改、重命名、删除与清空
常用Mysql DML语句
常用Mysql DML语句 查看字段: SHOW COLUMNS FROM `表名` 插入数据:INSERT INTO 表名(字段名) VALUES(值) #省略字段名是全字段插入 删除字段:ALTER TABLE 表名 DROP COLUMN 表名; 修改字段:ALTER TABLE 表名 MODIFY 字段名 VARCHAR(500) 添加字段:ALTER TABLE 表名 add 字段名 VARCHAR(500) 修改字段: ALTER TABLE 表名 CHANGE 原字段 新字段 varc
诡途
2022/05/09
4590
【数据库设计和SQL基础语法】--表的创建与操作--插入、更新和删除数据
INSERT INTO语句是用于向数据库表中插入新记录的SQL语句。其基本语法如下:
喵叔
2023/12/08
1.3K0
MySQL DELETE 语句
昨天介绍了 MySQL 数据库 UPDATE 更新的用法,今天来讲解下 DELETE 语句。
用户10358987
2024/04/23
2350
MySQL DELETE 语句
推荐阅读
相关推荐
【重学 MySQL】五十一、更新和删除数据
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档