在MySQL中有两种方法可以删除数据,一种是DELETE语句,另一种是TRUNCATE TABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。

如果要清空表中的所有记录,可以使用下面的两种方法:

  DELETE FROM table1

  TRUNCATE TABLE table1

其中第二条记录中的TABLE是可选的。

如果要删除表中的部分记录,只能使用DELETE语句。

    DELETE FROM table1 WHERE ...;

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

   DELETE FROM table1 WHERE 1;

DELETE和TRUNCATE TABLE的最大区别是DELETE可以通过WHERE语句选择要删除的记录,但执行速度不快。

truncate删除后不记录mysql日志,不可以恢复数据。delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。而且还可以返回被删除的记录数。而TRUNCATE TABLE无法删除指定的记录,而且不能返回被删除的记录。但它执行得非常快。

和标准的SQL语句不同,DELETE支持ORDER BY和LIMIT子句,通过这两个子句,我们可以更好地控制要删除的记录。如当我们只想删除WHERE子句过滤出来的记录的一部分,可以使用LIMIT,如果要删除后几条记录,可以通过ORDER BY和LIMIT配合使用。假设我们要删除users表中name等于"Mike"的前6条记录。可以使用如下的DELETE语句:

   DELETE FROM users WHERE name = 'Mike' LIMIT 6;

总结

更多相关文章

  1. ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
  2. 浅谈Java中Collections.sort对List排序的两种方法
  3. mybatisplus的坑 insert标签insert into select无参数问题的解决
  4. python起点网月票榜字体反爬案例
  5. Python list sort方法的具体使用
  6. python list.sort()根据多个关键字排序的方法实现
  7. android上一些方法的区别和用法的注意事项
  8. 《Android开发从零开始》——25.数据存储(4)
  9. android实现字体闪烁动画的方法

随机推荐

  1. linux查看磁盘使用情况命令
  2. Linux安装开发环境,必须配置的环节(Fedora1
  3. Linux操作以及c编程规范 、附带个问题
  4. Linux 的文件类型
  5. 第2章 计算机工作原理
  6. Linux中断(interrupt)子系统之三:中断流控处
  7. 我应该在哪里添加Yocto位烤任务来创建工
  8. linux常用的有关网络操作的命令:
  9. linux的0号进程和1号进程
  10. Linux 驱动面试题总结