删除操作

在 SQL 中,对表进行删除操作通常使用 DELETE 语句。以下是几种常见的删除表数据的写法以及它们之间的区别:

  1. DELETE FROM 表名
    • 这是最基本的删除表数据的写法。语法为 DELETE FROM 表名;,它会删除表中的所有数据,但保留表的结构。
    • 例如:DELETE FROM 表名;
-- 删除表中的所有数据,但保留表结构
DELETE FROM 表名;
  1. DELETE FROM 表名 WHERE 条件
    • 这种写法允许您根据指定的条件删除表中的数据。只有符合条件的行将被删除。
    • 例如:DELETE FROM 表名 WHERE 列名 = 值;
-- 根据条件删除表中的数据
DELETE FROM 表名 WHERE 列名 = 值;
  1. TRUNCATE TABLE 表名
    • TRUNCATE TABLE 语句用于快速删除表中的所有数据,但保留表的结构。与 DELETE 不同,TRUNCATE 是一个 DDL(数据定义语言)命令,而不是 DML(数据操作语言)命令。
    • TRUNCATEDELETE 更快,因为它不记录每个删除的行,而是直接删除整个表。
    • 例如:TRUNCATE TABLE 表名;
-- 快速删除表中的所有数据,但保留表结构
TRUNCATE TABLE 表名;
  1. DROP TABLE 表名
    • DROP TABLE 语句用于完全删除表,包括表的结构和数据。这是一个 DDL 命令,执行后将无法恢复数据。
    • 例如:DROP TABLE 表名;
-- 完全删除表,包括表的结构和数据
DROP TABLE 表名;

区别

  • DELETE FROM 表名DELETE FROM 表名 WHERE 条件 是用来删除表中的数据,但保留表的结构。
  • TRUNCATE TABLE 表名 用于快速删除表中的所有数据,但保留表的结构,且比 DELETE 更快。
  • DROP TABLE 表名 是用来完全删除表,包括表的结构和数据,执行后无法恢复数据。

虽然 TRUNCATE TABLE 表名DELETE FROM 表名 都用于删除表中的数据,但二者之间存在一些区别:

  1. TRUNCATE TABLE 表名;
    • TRUNCATE TABLE 是一个 DDL(数据定义语言)命令,用于快速删除表中的所有数据。
    • TRUNCATE 操作比 DELETE 操作更快,因为它不记录每个删除的行,而是直接删除整个表的数据。
    • TRUNCATE 操作通常无法撤消,并且会重置自增长标识符(如果有)。
    • 由于 TRUNCATE 是 DDL 命令,因此在执行 TRUNCATE TABLE 时,会自动提交事务,无法在事务中回滚。
  1. DELETE FROM 表名;
    • DELETE FROM 是一个 DML(数据操作语言)命令,用于删除表中的数据,但保留表的结构。
    • DELETE 操作相对较慢,因为它会逐行删除数据,并记录每个被删除的行,同时会触发相关的触发器和约束。
    • DELETE 操作可以用在事务中,并且可以通过回滚事务来撤消删除操作。

虽然 TRUNCATE TABLE 表名;DELETE FROM 表名; 都可以用于删除表中的数据,但在性能、事务处理和数据恢复等方面存在明显的区别。

posted @ 2024-04-29 09:36  好大的鱼  阅读(103)  评论(0)    收藏  举报