MySQL删除表数据:DELETE 与 TRUNCATE 的区别
2019独角兽企业重金招聘Python工程师标准>>>
在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。
如果要清空表中的所有记录,可以使用下面的两种方法:
DELETE FROM tb_mail
TRUNCATE TABLE tb_mail
其中第二条记录中的TABLE是可选的。
如果要删除表中的部分记录,只能使用DELETE语句。
DELETE FROM table1 WHERE ...;
如果DELETE不加WHERE子句,那么它和TRUNCATE TABLE是一样的,但它们有一点不同,那就是DELETE可以返回被删除的记录数,而TRUNCATE TABLE返回的是0。
如果一个表中有自增字段,使用TRUNCATE TABLE和没有WHERE子句的DELETE删除所有记录后,这个自增字段将起始值恢复成1.如果你不想这样做的话,可以在DELETE语句中加上永真的WHERE,如WHERE 1或WHERE true。
DELETE FROM table1 WHERE 1;
上面的语句在执行时将扫描每一条记录。但它并不比较,因为这个WHERE条件永远为true。这样做虽然可以保持自增的最大值,但由于它是扫描了所有的记录,因此,它的执行成本要比没有WHERE子句的DELETE大得多。
DELETE和TRUNCATE TABLE的最大区别是DELETE可以通过WHERE语句选择要删除的记录。但执行得速度不快。而且还可以返回被删除的记录数。而TRUNCATE TABLE无法删除指定的记录,而且不能返回被删除的记录。但它执行得非常快。
和标准的SQL语句不同,DELETE支持ORDER BY和LIMIT子句,通过这两个子句,我们可以更好地控制要删除的记录。如当我们只想删除WHERE子句过滤出来的记录的一部分,可以使用LIMIB,如果要删除后几条记录,可以通过ORDER BY和LIMIT配合使用。假设我们要删除users表中name等于"Mike"的前6条记录。可以使用如下的DELETE语句:
DELETE FROM users WHERE name = 'niubi' LIMIT 6;
一般MySQL并不确定删除的这6条记录是哪6条,为了更保险,我们可以使用ORDER BY对记录进行排序。
DELETE FROM users WHERE name = 'niubi' ORDER BY id DESC LIMIT 6;tb_mail
转载于:https://my.oschina.net/robortly/blog/410706
MySQL删除表数据:DELETE 与 TRUNCATE 的区别相关推荐
- MySQL删除s表命令_SQLServer数据库sql语句中----删除表数据drop、truncate和delete的用法...
本文主要向大家介绍了SQLServer数据库sql语句中----删除表数据drop.truncate和delete的用法,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 虽 ...
- MySQL删除表数据 MySQL清空表命令 3种方法
一.MySQL清空表数据命令:truncate SQL语法: truncate table 表名 注意: 不能与where一起使用. truncate删除数据后是不可以rollback的. trunc ...
- MySQL 删除表数据,重置自增 id 为 0 的两个方式
MySQL 删除表数据,重置自增 id 为 0 的两个方式: 1.truncate table table_name; truncate table `user`; 2.delete 配合 alter ...
- MySQL删除表数据 MySQL清空表数据命令 3种方法
一.MySQL清空表数据命令:truncate SQL语法: truncate table 表名; 注意: 不能与where一起使用. truncate删除数据后是不可以rollback的. trun ...
- 数据库mysql中对于drop_数据库之删除表数据drop、truncate和delete的用法
数据库中删除表数据的关键字,最常用的可能就是delete了,另外其实还有drop和truncate两个关键字. 老大:drop 命令格式:drop table tb ---tb表示数据表的名字,下 ...
- 数据库之删除表数据drop、truncate和delete的用法
数据库中删除表数据的关键字,最常用的可能就是delete了,另外其实还有drop和truncate两个关键字. 老大:drop 命令格式:drop table tb ---tb表示数据表的名字,下 ...
- Sql语句——删除表数据drop、truncate和delete的用法
一.SQL中的语法 1.drop table 表名称 eg: drop table dbo.Sys_Test 2.truncate tabl ...
- SQL语句中删除表数据drop、truncate和delete的用法
一.SQL的语法 1.drop table 表名称 // drop table dbo.Sys_Test2.truncate table 表名称 // truncate table dbo.Sys_T ...
- sql语句-删除表数据drop、truncate和delete的用法
一.SQL中的语法 1.drop table 表名称 eg: drop table course 2.truncate table 表名称 eg: truncate table course 3.de ...
- SQL语句中----删除表数据drop、truncate和delete的用法
一.SQL中的语法 1.drop table 表名称 eg: drop table dbo.Sys_Test 2.truncate table ...
最新文章
- Java项目:精品酒店管理系统(java+SSM+mysql+maven+tomcat)
- oracle 参数=gt;,解析gt参数
- Introduction to random forests
- zTree使用技巧与详解
- PHPcms框架的Webshell
- git 配置图形比较工具
- nodejs图片读取
- windows10下安装tensorflow(gpu版本)
- Qt 5.9.1 连 MYSQL 5.7数据库
- goland编写go语言导入自定义包出现: package xxx is not in GOROOT (/xxx/xxx) 的解决方案
- 大学计算机基础题库百度云资源,《大学计算机基础试题题库及答案》.pdf
- 小甲鱼 C语言 15课
- 在火狐浏览器中获得borderColor的值
- uchome 标签讲解
- linux tcp 113错误,linux系统报tcp_mark_head_lost错误的处理方法
- 视觉层次设计方法论:提升界面设计的易读性
- 【Android驱动】高通msm8953背光流程
- ubuntu conda、pip 设置代理
- 索尼展示基于MicroLED技术的16K显示屏:约780吋
- 一个WEB应用的开发流程
热门文章
- python怎样安装wordcloud(词云)文件
- 基于Colaboratory平台使用VGGNet网络进行图片分类
- 【LeetCode】【数组】题号:*661,图片平滑器
- 提取PCA变换后的图像的各主成分(matlab代码)
- ENVI5.3.1使用Landsat 8影像进行主成分分析实例操作
- Activity的Launch mode详解 singleTask正解
- mysql清除内存不足_MySQL内存不足怎么办
- python axis=1是行吗_Python:axis=0 axis=1的理解
- Flink CDC 系列 - 同步 MySQL 分库分表,构建 Iceberg 实时数据湖
- Apache Flink 1.9.0 为什么将支持 Python API ?