MySQL中删除表记录delete from和truncate table的用法区别:
mysql中有两种删除表中记录的方法:
(1)delete from语句,
(2)truncate table语句。

delete from语句可以使用where对要删除的记录进行选择。delete语句更灵活。
truncate table将删除表中的所有记录。

情况一:清空表中的所有记录,可以使用下面的两种方法:
delete from tablename
truncate table tablename
其中第二条记录中的table是可选的。

情况二:删除表中的部分记录,只能使用delete语句。
delete FROM table1 WHERE ;

区别:
(1)如果delete不加WHERE子句,那么它和truncate table是一样的,但它们有一点不同,那就是delete可以返回被删除的记录数,而truncate table返回的是0。

(2)如果一个表中有自增字段,使用truncate table和没有WHERE子句的delete删除所有记录后,这个自增字段将起始值恢复成1.如果你不想这样做的话,可以在delete语句中加上永真的WHERE,如WHERE 1或WHERE true。
delete FROM table1 WHERE 1;

上面的语句在执行时将扫描每一条记录。但它并不比较,因为这个WHERE条件永远为true。这样做虽然可以保持自增的最大值,但由于它是扫描了所有的记录,因此,它的执行成本要比没有WHERE子句的delete大得多。

(3)还有一点就是,如果要删除表中的所有数据,建议使用truncate table, 尤其是表中有大量的数据, 使用truncate table是将表结构重新建一次速度要比使用delete from快很多,而delete from是一行一行的删除,速度很慢.

总结:
delete和truncate table的最大区别是delete可以通过WHERE语句选择要删除的记录。但执行得速度不快。而且还可以返回被删除的记录数。而truncate table无法删除指定的记录,而且不能返回被删除的记录。但它执行得非常快。

delete :
与标准的SQL语句不同,delete支持ORDER BY和LIMIT子句。
delete FROM users WHERE name = 'nike' ORDER BY id DESC LIMIT 6;

最新文章

  1. svn error
  2. 数据结构--树状数组(黑龙江省第八届大学生程序设计竞赛--post office)
  3. Android IOS WebRTC 音视频开发总结(三五)-- chatroulette介绍
  4. 【C语言】-循环结构-for语句
  5. 高效算法——G - 贪心
  6. discuz清空session,导致session保存机制失败,session无法更新与解决
  7. SQL执行过程中的性能负载点
  8. JDBC+Servlet+jsp(增删查改)
  9. Java面向对象进阶篇(内部类)
  10. 19.python的序列化
  11. Python开发——10.面向对象编程进阶
  12. Netty 系列二(传输).
  13. JEECG 不同(角色的)人对同样的字段数据,使用不同的字段验证规则
  14. 教你如何在win7中的cygwin64下安装hadoop
  15. JS设计模式(11)中介者模式
  16. IOS HTML5页面中数字自动变蓝并识别为手机号
  17. 【iCore4 双核心板_FPGA】例程七:状态机实验——状态机使用
  18. Oracle中空值与数字相加问题
  19. 【jQuery】Deferred(延迟)对象
  20. 解读python手册的例子a, b = b, a+b

热门文章

  1. 【poj3522-苗条树】最大边与最小边差值最小的生成树,并查集
  2. 省队集训 Day6 序列
  3. 如何设计一个优雅健壮的Android WebView?(上)
  4. 2018 Multi-University Training Contest 1-1002 -Balanced Sequence(括号匹配+贪心)
  5. elementui table 多选 获取id
  6. 使用BackgroundWorker
  7. xctf一道反序列化题
  8. 【Python学习笔记】Coursera之PY4E学习笔记——String
  9. rtems-os-source
  10. OpenRCT2