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日
下一篇 2018年4月17日

相关推荐

  • 小编分享mysql 三表联合查询。

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

    2024年6月20日
    00
  • 数据库密码如何修改,navicat修改数据库密码。

    在数据库中,密码是保护数据安全的重要手段,如果你忘记了Navicat的数据库密码,或者需要修改Navicat的数据库密码,可以按照以下步骤进行操作。 你需要打开Navicat软件,在主界面,点击左上角的“连接”按钮,然后在…

    2024年6月16日
    00
  • 聊聊eclipse怎么向数据库中添加数据。

    在Eclipse中,可以使用JDBC(Java Database Connectivity)向数据库添加数据。首先需要建立数据库连接,然后使用PreparedStatement对象执行SQL插入语句。 Eclipse是一个功能强大的集成开发环境(IDE),它支持多种…

    2024年7月8日
    00
  • mysql导入sql文件的步骤是什么。

    1. 打开MySQL命令行工具;,2. 使用USE语句选择数据库;,3. 执行SOURCE命令导入SQL文件。 MySQL导入SQL文件的步骤如下: 1、准备工作 在开始导入SQL文件之前,需要确保已经安装了MySQL数据库,并且知道数据库的用…

    2024年7月27日
    00
  • 说说删除mysql。

    删除MySQL数据库的步骤如下: 1. 登录到MySQL服务器,在命令行中输入以下命令,然后输入密码: mysql -u root -p 2. 选择要删除的数据库,在MySQL命令行中输入以下命令,将`database_name`替换为要删除的数据库名称…

    2024年6月18日
    00
  • 我来说说mysql建库命令怎么使用。

    使用CREATE DATABASE命令在MySQL中创建新的数据库。 MySQL是一种常用的关系型数据库管理系统,它提供了丰富的功能和灵活的操作方式,在使用MySQL时,我们经常需要创建新的数据库来存储和管理数据,本文将详细介绍如…

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

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

    2024年7月13日
    00
  • 怎么启动mysql服务。

    一、MySQL简介 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司,MySQL是最流行的关系型数据库管理系统之一,在WEB应用方面,MySQL是最好的RDBMS(Relational Database Management Sy…

    2024年6月20日
    00

联系我们

QQ:951076433

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