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

相关推荐

  • 我来分享centos启动MySQL命令。

    在CentOS系统中启动MySQL,我们需要进行以下步骤: 1. 打开终端。 2. 我们需要检查MySQL服务是否已经安装,如果没有安装,我们可以使用yum命令进行安装。 3. 如果MySQL服务已经安装,我们可以使用systemctl命令来...

    2024年6月16日
    00
  • mysql表的字段类型:字符串、日期时间、数值

    值型:存储的数值大小不一样,默认是有符号的,无符号:unsigned 整数:tinyint、smallint、int 小数:float、decimal float,范围大约是-3.4E+38到-1.1E-38、0和1.1E-38到3.4E+38 Decimal:定点型 Decimal(10,2)...

    2017年11月22日 MySQL自学教程
    0268
  • 关于服务器数据库运行时内存高怎么办啊。

    检查并优化数据库查询,减少不必要的数据加载;增加服务器内存;定期清理和维护数据库,删除冗余数据;考虑使用内存管理工具或技术。 当服务器数据库运行时内存高,可能会导致性能下降,甚至导致系统崩溃,为了解...

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

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

    2024年7月17日
    03
  • MySQL的基本语法

    注释: 单行注释: #注释内容 单行注释: -- 注释内容(注意,两个“--”之后有一个空格) 多行注释: /*注释内容*/ 语句行: 一条语句也称为一条命令,通常用一个分号(;)结束;也可以通过"delimiter 新结束符" 命...

    2017年11月21日
    0242
  • 我来教你宝塔面板轻松实现LNMP一键安装省时省力搭建网站。

    宝塔面板是一款轻松实现LNMP一键安装的工具,可以省时省力地搭建网站。 宝塔面板轻松实现LNMP一键安装省时省力搭建网站 随着互联网的普及,越来越多的人开始关注自己的个人网站和博客,而搭建一个网站并不是一件...

    2024年7月14日
    01
  • 说说山东虚拟主机租用怎么评测。

    要评测山东虚拟主机租用,主要需要考虑以下几个方面:虚拟主机的价格,包括基础价格、续费价格以及优惠政策等,需要进行比较并选择性价比最高的。稳定性是非常重要的,因为一个网站的用户最基本的要求就是可以顺...

    2024年7月27日
    03
  • 今日分享纯真ip是什么意思。

    纯真ip查询是一个提供IP地址和域名信息查询服务的数据库,它能够帮助用户识别访问者的地理位置、所属网络和运营商等信息,该数据库广泛应用于网络安全、网络优化、广告定向等领域,为了确保信息的准确性和实时性...

    2024年7月22日
    00

联系我们

QQ:951076433

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