`

MySQL DELETE语句和TRUNCATE TABLE语句的区别

阅读更多

MySQL DELETE语句和TRUNCATE TABLE语句功能相似,但是二者究竟有何区别呢?下文就将为您分析MySQL DELETE语句和TRUNCATE TABLE语句的区别,供您参考。

MySQL中有两种方法可以删除数据,一种是MySQL DELETE语句,另一种是MySQL TRUNCATE TABLE语句。DELETE语句可以通过WHERE对要删除的记录进行选择。而使用TRUNCATE TABLE将删除表中的所有记录。因此,DELETE语句更灵活。

如果要清空表中的所有记录,可以使用下面的两种方法:

DELETE FROM table1
TRUNCATE TABLE table1
其中第二条记录中的TABLE是可选的。

如果要删除表中的部分记录,只能使用DELETE语句。

DELETE FROM table1 WHERE ;
如果DELETE不加WHERE子句,那么它和TRUNCATE TABLE是一样的,但它们有一点不同,那就是DELETE可以返回被删除的记录数,而TRUNCATE TABLE返回的是0。

如果一个表中有自增字段,使用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语句不同,MySQL DELETE语句支持ORDER BY和LIMIT子句,通过这两个子句,我们可以更好地控制要删除的记录。如当我们只想删除WHERE子句过滤出来的记录的一部分,可以使用LIMIB,如果要删除后几条记录,可以通过ORDER BY和LIMIT配合使用。假设我们要删除users表中name等于"Mike"的前6条记录。可以使用如下的DELETE语句:

DELETE FROM users WHERE name = 'Mike' LIMIT 6;
一般MySQL并不确定删除的这6条记录是哪6条,为了更保险,我们可以使用ORDER BY对记录进行排序。

DELETE FROM users WHERE name = 'Mike' ORDER BY id DESC LIMIT 6;

分享到:
评论

相关推荐

    国家开放大学 MySQL数据库应用 实验训练3 数据增删改操作

    MySQL数据库应用实验训练3 数据增删改操作 ...* 了解单记录插入与批量插入、Delete 与 TRUNCATE TABLE 语句、单表修改与多表修改的区别 实验内容: * 实验 3-1:插入数据 * 实验 3-2:删除数据 * 实验 3-3:修改数据

    MySQL删除表操作实现(delete、truncate、drop的区别)

    本文主要讲mysql中三种删除表的操作,delete语句、truncate语句以及drop语句的区别: 简介 delete 1、删除整张表的数据: delete from table_name; 2、删除部分数据,添加where子句: delete from table_name ...

    MySQL—delete和truncate的区别

    在MySQL数据库管理中,删除数据的操作主要有两种方式:`DELETE` 和 `TRUNCATE`。它们虽然都能实现数据的删除,但在使用场景、性能和效果上有着显著的区别。以下是关于这两种操作的详细解释: 1. **`DELETE` 命令** ...

    MySQL中truncate误操作后的数据恢复案例

    实际线上的场景比较复杂,当时涉及了truncate, delete 两个操作,经确认丢数据差不多7万多行,等停下来时,差不多又有共计1万多行数据写入。 这里为了简单说明,只拿弄一个简单的业务场景举例。 测试环境: Percona-...

    MySQL删除数据Delete与Truncate语句使用比较

    不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。 其语法结构为: 代码如下:...

    Mysql语句.pdf

    当需要清空数据库中所有表的数据时,可以使用`mysql`命令和`TRUNCATE TABLE`语句。如果存在外键约束,可能需要添加`-f`选项强制执行: ``` mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE', ...

    MySQL数据库应用\形考任务3

    通过本次实训,我们将学习 Insert、Delete、TRUNCATE TABLE、Update 语句的操作方法,理解单记录插入与批量插入、DELETE 与 TRUNCATE TABLE 语句、单表修改与多表修改的区别。 知识点 1: 数据插入 在本次实训中,...

    mysql 删除操作(delete+TRUNCATE)

    MySQL中的删除操作主要涉及到两种方式:DELETE和TRUNCATE,它们在不同的场景下有不同的优势和用途。下面将详细解析这两种方法以及它们的使用细节。 1. DELETE语句: DELETE语句是最常用的删除数据的方式,它允许...

    Access中的trucate语句

    在SQL Server、MySQL等其他数据库系统中,TRUNCATE语句被广泛用于这种场景,但在Access中,我们通常使用DELETE语句配合ALTER TABLE语句来达到相同的目的。 ### 使用DELETE语句清空表 在Access中,如果想要删除表中...

    MySQL语句大全(个人整理)

    * 清空表:使用 `delete from 表名` 或 `truncate table 表名` 语句可以清空一个表中的所有数据。 * 查看表结构:使用 `desc Table_Name` 语句可以查看一个表的结构。 * 修改表:使用 `alter table` 语句可以修改一...

    PHP程序设计-3期(KC016) 4.3.6删除记录拓展知识.doc

    本节主要探讨了MySQL数据库中的两种删除数据的方法:DELETE语句和TRUNCATE TABLE语句,并深入解析它们之间的区别。 1. DELETE语句: DELETE语句允许你根据特定条件删除表中的数据。它是一个DML(Data Manipulation...

    使用之MySQL官方文档翻译

    虽然 TRUNCATE TABLE 和 DELETE 语句都能达到清空表的效果,但在实际应用中两者有着本质的区别: 1. **性能差异**:TRUNCATE TABLE 实际上执行的操作是删除表再重新创建,这种方式在处理大数据量时相较于 DELETE ...

    Mysql语句.docx

    总结来说,MySQL提供了丰富的数据导入导出和清理工具,如`mysqldump`和`TRUNCATE TABLE/DELETE`语句,以适应不同的管理需求。在实际操作中,应根据具体情况选择最合适的命令,并确保对可能的数据丢失或约束冲突有所...

    mysql delete 多表连接删除功能

    MySQL中的`DELETE`语句是用于从数据库中删除数据行的关键命令。在处理单个表时,`DELETE`语句的使用相对简单,而在多表环境中进行连接删除时,其复杂性和潜在影响则显著增加。这里我们将深入探讨`DELETE`语句的各种...

    delete from 表名与truncate table 表名区别

    在数据库管理中,`DELETE` 和 `TRUNCATE TABLE` 是两种常见的用于清空数据表的语句,但它们在具体的行为和效果上存在显著差异。以下是对这两个语句的详细解析: 1. **对自动编号列的影响**: - `DELETE` 语句会...

    mysql插入、修改、删除-实训训练3.docx

    通过对汽车用品网上商城数据库 Shopping 的操作,可以熟悉 Insert、Delete、TRUNCATE TABLE 和 Update 语句的使用方法,并理解单记录插入与批量插入、DELETE 与 TRUNCATE TABLE 语句、单表修改与多表修改的区别。...

    MySQL删除表数据的方法

    在MySQL数据库管理中,删除表数据是常见的操作,主要分为两种方法:DELETE语句和TRUNCATE TABLE语句。这两种方法各有特点,适用于不同的场景。 首先,DELETE语句提供了更大的灵活性,因为它允许通过WHERE子句指定...

    MySQL数据库:数据记录的删除.pptx

    总结来说,删除MySQL数据库中的数据记录有多种方式,包括`DELETE`语句和`TRUNCATE TABLE`语句,它们各有特点和适用场景。在实际应用中,要根据具体需求选择合适的方法,并且一定要谨慎操作,防止数据丢失。对于多表...

Global site tag (gtag.js) - Google Analytics