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 的区别相关推荐

  1. MySQL删除s表命令_SQLServer数据库sql语句中----删除表数据drop、truncate和delete的用法...

    本文主要向大家介绍了SQLServer数据库sql语句中----删除表数据drop.truncate和delete的用法,通过具体的内容向大家展现,希望对大家学习SQLServer数据库有所帮助. 虽 ...

  2. MySQL删除表数据 MySQL清空表命令 3种方法

    一.MySQL清空表数据命令:truncate SQL语法: truncate table 表名 注意: 不能与where一起使用. truncate删除数据后是不可以rollback的. trunc ...

  3. MySQL 删除表数据,重置自增 id 为 0 的两个方式

    MySQL 删除表数据,重置自增 id 为 0 的两个方式: 1.truncate table table_name; truncate table `user`; 2.delete 配合 alter ...

  4. MySQL删除表数据 MySQL清空表数据命令 3种方法

    一.MySQL清空表数据命令:truncate SQL语法: truncate table 表名; 注意: 不能与where一起使用. truncate删除数据后是不可以rollback的. trun ...

  5. 数据库mysql中对于drop_数据库之删除表数据drop、truncate和delete的用法

    数据库中删除表数据的关键字,最常用的可能就是delete了,另外其实还有drop和truncate两个关键字. 老大:drop 命令格式:drop table  tb  ---tb表示数据表的名字,下 ...

  6. 数据库之删除表数据drop、truncate和delete的用法

    数据库中删除表数据的关键字,最常用的可能就是delete了,另外其实还有drop和truncate两个关键字. 老大:drop 命令格式:drop table  tb  ---tb表示数据表的名字,下 ...

  7. Sql语句——删除表数据drop、truncate和delete的用法

      一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test    2.truncate tabl ...

  8. SQL语句中删除表数据drop、truncate和delete的用法

    一.SQL的语法 1.drop table 表名称 // drop table dbo.Sys_Test2.truncate table 表名称 // truncate table dbo.Sys_T ...

  9. sql语句-删除表数据drop、truncate和delete的用法

    一.SQL中的语法 1.drop table 表名称 eg: drop table course 2.truncate table 表名称 eg: truncate table course 3.de ...

  10. SQL语句中----删除表数据drop、truncate和delete的用法

    一.SQL中的语法 1.drop table 表名称                         eg: drop table  dbo.Sys_Test    2.truncate table  ...

最新文章

  1. Java项目:精品酒店管理系统(java+SSM+mysql+maven+tomcat)
  2. oracle 参数=gt;,解析gt参数
  3. Introduction to random forests
  4. zTree使用技巧与详解
  5. PHPcms框架的Webshell
  6. git 配置图形比较工具
  7. nodejs图片读取
  8. windows10下安装tensorflow(gpu版本)
  9. Qt 5.9.1 连 MYSQL 5.7数据库
  10. goland编写go语言导入自定义包出现: package xxx is not in GOROOT (/xxx/xxx) 的解决方案
  11. 大学计算机基础题库百度云资源,《大学计算机基础试题题库及答案》.pdf
  12. 小甲鱼 C语言 15课
  13. 在火狐浏览器中获得borderColor的值
  14. uchome 标签讲解
  15. linux tcp 113错误,linux系统报tcp_mark_head_lost错误的处理方法
  16. 视觉层次设计方法论:提升界面设计的易读性
  17. 【Android驱动】高通msm8953背光流程
  18. ubuntu conda、pip 设置代理
  19. 索尼展示基于MicroLED技术的16K显示屏:约780吋
  20. 一个WEB应用的开发流程

热门文章

  1. python怎样安装wordcloud(词云)文件
  2. 基于Colaboratory平台使用VGGNet网络进行图片分类
  3. 【LeetCode】【数组】题号:*661,图片平滑器
  4. 提取PCA变换后的图像的各主成分(matlab代码)
  5. ENVI5.3.1使用Landsat 8影像进行主成分分析实例操作
  6. Activity的Launch mode详解 singleTask正解
  7. mysql清除内存不足_MySQL内存不足怎么办
  8. python axis=1是行吗_Python:axis=0 axis=1的理解
  9. Flink CDC 系列 - 同步 MySQL 分库分表,构建 Iceberg 实时数据湖
  10. Apache Flink 1.9.0 为什么将支持 Python API ?