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的数据操作_修改数据

    语句:update 表名 set 字段名1=值表达式1,字段名2=值表达式2,....where条件 ; 之前相关数据库操作请移步: 1、数据库的删、查、改操作 2、mysql的数据操作_修改数据和查询数据 3、mysql的数据操作_插入数据 4、…

    2018年3月11日
    0232
  • 教你中文数据库检索功能的特点。

    最新版中文搜索引擎数据库TngouDB是一款针对中文搜索场景的高性能、高可用、高扩展性的搜索引擎数据库,它采用了先进的技术和算法,为用户提供了丰富的搜索功能和优质的搜索体验,本文将从以下几个方面介绍TngouDB…

    2024年7月6日
    01
  • 常用的虚拟主机控制面板有哪些功能。

    虚拟主机控制面板具备多样化的功能,它可以帮助用户有效地管理虚拟主机、网站备份等日常运维工作。用户可以自由开启或关闭FTP登录、在线修改FTP登录密码,以及查询网站空间的使用情况。虚拟主机控制面板还支持数据…

    2024年7月20日
    03
  • 说说db2建库的流程是怎么样的「db2建库命令」。

    在DB2数据库管理系统中,创建新数据库的过程可以大致分为以下几个步骤: 1. **规划和设计**:在开始建立数据库之前,首先需要对数据库进行规划和设计,这包括确定数据库的名称、数据表的结构(包括字段名、数据类型…

    2024年6月14日
    01
  • 经验分享甲骨文免费vps。

    【甲骨文免费vps】,这是一个非常有趣的话题,在这篇文章中,我将为您介绍什么是甲骨文免费VPS以及如何使用它。 什么是甲骨文?甲骨文是中国古代的一种文字,用于商代晚期至西周早期的卜辞、铭文等记录,它是中国历…

    2024年6月18日
    03
  • 今日分享weblogic改数据库权限 立刻生效。

    Weblogic改数据库权限后立刻生效,无需重启。 WebLogic 是一个用于构建和管理企业级 Java 应用程序的强大的服务器,在 WebLogic 中,数据库权限的管理是非常重要的,因为它涉及到数据的安全性和完整性,本文将详细…

    2024年7月17日
    03
  • 我来分享magenta翻译。

    Magento是一个开源的电子商务平台,它提供了丰富的功能和灵活的定制选项,在使用Magento的过程中,有时我们可能会遇到翻译修改不生效的问题,这个问题可能是由于多种原因导致的,下面我们将详细介绍如何解决Magento…

    2024年6月28日
    03
  • 小编教你html 如何用mysql数据库数据类型。

    在HTML中,我们无法直接使用MySQL数据库的数据类型,我们可以使用PHP、JavaScript等后端语言来连接MySQL数据库,并将数据类型转换为HTML所需的格式,下面我将详细介绍如何使用PHP和MySQL数据库数据类型。 (图片来…

    2024年6月24日
    04

联系我们

QQ:951076433

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