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

相关推荐

  • 聊聊exchange怎么填服务器。

    在解决Exchange DAG(有向无环图)成员服务器添加数据库副本的错误问题时,需要首先了解错误的原因,然后根据具体的情况采取相应的解决策略,以下是一些可能的解决方案: 1. 检查网络连接:确保Exchange服务器和数…

    2024年6月14日
    00
  • 数据库基础篇——数据库介绍及MYSQL的安装配置

    数据库介绍 DataBase,简称DB,数据仓库,提供数据存储以及查询(取)服务的软件。 数据库分类 轻量级:DB2、foxpro、access(访问)、mysql、…… 标准级:MS SQL 2000、2005、2008、2010 重量级:oracle   SQL…

    2017年10月20日 MySQL自学教程
    0204
  • 教你美国空间网址。

    “美国空间网址”可能指的是专注于空间探索、创新和天文学新闻的Space.com。该网站致力于庆祝人类在这片最终边疆的持续拓展。 ASP美国空间配置 在互联网行业中,ASP(Application Service Provider)是一…

    2024年7月13日
    00
  • 小编分享mysql 三表联合查询。

    在MySQL中,三表联查是一种常见的查询方式,它可以帮助我们将三个或更多的表的数据进行关联查询,这种查询方式可以让我们获取到更全面、更详细的数据信息,下面,我将详细介绍如何在MySQL中实现三表联查。 (图片来…

    2024年6月20日
    00
  • 关于本机做mysql服务器怎么设置ip。

    在设置MySQL服务器的IP地址时,首先需要确保你已经正确安装了MySQL服务器,接下来,我将详细解释如何设置MySQL服务器的IP地址。 1、打开MySQL配置文件 MySQL配置文件通常位于以下路径: – Windows: `C:Progra…

    2024年7月13日
    00
  • 重蔚自留地php学习第三十九天——mysql事物触发器函数过程

    数据备份 将数据里的数据进行保存到外部文件,从而在数据库内部数据丢失或者出错的情况下能够通过备份文件进行还原操作,从而将损失降低到最小。 对单表内的纯数据进行备份 将表中的数据(不包含结构,没有字段头信…

    2018年10月23日 MySQL自学教程
    0267
  • 分享MySQL与YAML的数据交互技巧。

    MySQL与YAML的数据交互技巧 (图片来源网络,侵删) 在软件开发过程中,我们经常需要在不同的组件之间传递数据,MySQL是一个流行的关系型数据库管理系统,而YAML(Yet Another Markup Language)是一种轻量级的数据…

    2024年6月20日
    00
  • PHP与数据库诊断的集成。

    最近几年来,随着数据库使用量的激增,PHP和数据库的配合已成为Web开发中非常重要的一环。PHP是一种开源的编程语言,可以轻松地在任何Web服务器上运行,而数据库则是数据管理系统的核心。但是,数据库在使用过程中…

    2023年5月21日
    03

联系我们

QQ:951076433

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