mysql中删除表记录delete from和truncate table的用法区别

昨天开发的时候遇到的问题,整理了一下,分享给大家,可以看看,有需要的话可以利用一下。

mysql中删除表记录delete from和truncate table的用法区别:

MySQL中有两种删除表中记录的方法,一种是delete from语句,另一种是truncate table语句。 
(1)delete from语句可以使用where对要删除的记录进行选择。而使用truncate table将删除表中的所有记录。因此,delete语句更灵活。
(2)如果要清空表中的所有记录,可以使用下面的两种方法:
delete from tablename
truncate table tablename
其中第二条记录中的table是可选的。
(3)如果要删除表中的部分记录,只能使用delete语句。
delete FROM table1 WHERE ;
如果delete不加WHERE子句,那么它和truncate table是一样的,但它们有一点不同,那就是delete可以返回被删除的记录数,而truncate table返回的是0。
(4)如果一个表中有自增字段,使用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等于”nike”的前6条记录。可以使用如下的delete语句:

delete FROM users WHERE name = 'nike' LIMIT 6;

一般MySQL并不确定删除的这6条记录是哪6条,为了更保险,我们可以使用ORDER BY对记录进行排序。

delete FROM users WHERE name = 'nike' ORDER BY id DESC LIMIT 6;

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

本文来自投稿,不代表重蔚自留地立场,如若转载,请注明出处https://www.cwhello.com/6407.html

如有侵犯您的合法权益请发邮件951076433@qq.com联系删除

(0)
重蔚的头像重蔚管理团队
上一篇 2018年4月13日 09:49
下一篇 2018年4月17日 09:23

相关推荐

  • 我来说说mysql如何查看表是否存在。

    在MySQL数据库中,查询一个表是否存在可以通过几种不同的方法来实现,以下是一些常用的技术教学和步骤说明: (图片来源网络,侵删) 方法一:使用SHOW TABLES语句 最简单直接的方法是使用SHOW TABLES语句来列出数…

    2024年6月19日
    09
  • 经验分享mysql删除库。

    MySQL删除库的方法有很多,这里我们介绍两种常见的方法:使用DROP DATABASE语句和使用mysqladmin命令。 一、使用DROP DATABASE语句 1. 语法 DROP DATABASE database_name; 2. 示例 假设我们要删除一个名为`testdb`…

    2024年6月19日
    02
  • 经验分享dedecms不更新了。

    Dedecms停止更新,可能对使用该内容管理系统的网站产生影响。 DedeCMS是一款非常流行的开源内容管理系统,它以其简单易用、功能丰富而受到广大站长的喜爱,在使用过程中,有些站长可能会遇到后台更新缓慢甚至卡死的…

    2024年7月7日
    01
  • 教你mysql字符串包含某个字符。

    Python字符串格式 在Python中,我们经常需要格式化字符串,以便在输出时插入变量值或执行其他操作,本文将介绍Python中的字符串格式化方法。 1、使用百分号(%)操作符 这是Python 2.x中最常用的字符串格式化方法,…

    2024年7月24日
    02
  • 经验分享动态网站建设全程揭秘。

    动态网站建设是一种基于数据库的web开发技术,它允许网站内容根据用户的操作和输入实时更新和变化,这种类型的网站通常具有交互性,能够提供更丰富、更个性化的体验,我们将详细介绍动态网站建设包括哪些部分,以及…

    2024年7月2日
    03
  • 聊聊延迟低的vps。

    “提供低延迟的VPS服务,确保数据快速传输和高效处理。” 在当今的互联网时代,VPS(Virtual Private Server,虚拟专用服务器)已经成为了许多网站和应用程序的首选托管方式,随着网络应用的复杂性和用户…

    2024年7月23日
    02
  • 小编教你jdbc怎么向数据库添加数据。

    要使用JDBC向数据库添加数据,首先需要建立连接,然后创建一个Statement对象,通过该对象执行SQL插入语句。以下是一个简单的示例:,,“java,import java.sql.Connection;,import java.sql.DriverManager;…

    2024年7月19日
    02
  • 分享探索MySQL中上月的高级函数。

    在MySQL中,要探索上月的数据,可以使用DATE_SUB()和LAST_DAY()函数结合WHERE子句来实现。 MySQL中上月的高级函数可以通过以下步骤实现: 1. 获取当前日期 在MySQL中,我们可以使用CURDATE()函数来获取当前日期。 …

    2024年6月26日
    04

联系我们

QQ:951076433

在线咨询:点击这里给我发消息邮件:951076433@qq.com工作时间:周一至周五,9:30-18:30,节假日休息