提示:注意并关闭 AUTOCOMMIT

DELETE 命令用于从表中删除行。

DELETE FROM <tablename>
WHERE       <search_condition>;

语法相对简单,因为无需指定列名——行会被整体删除,而非部分删除。与往常一样,WHERE 子句中的搜索条件用于指定受影响的行。可以影响 0 行、1 行或多行。如果省略 WHERE 关键字和搜索条件,则所有行都会被删除。


示例

删除一行

以下示例删除姓氏为 Burton 的记录:

-- 删除一行
DELETE FROM person
WHERE  lastname = 'Burton';

-- 只是测试,恢复数据
ROLLBACK;

在该示例中,有关 Mr. Burton 的信息被删除,然后通过 ROLLBACK 恢复。


更多信息

在使用 DELETE 命令时还需注意以下几点:

  • DELETE 命令支持复杂的 WHERE 子句,可以结合布尔运算符、子查询等。
  • 如果想清空整个表的数据而不保留任何行,可以省略 WHERE 子句。
  • DELETETRUNCATE 命令的区别:
    • DELETE 会逐行删除,支持回滚(如果启用了事务)。
    • TRUNCATE 是一种快速清空表的方式,无法逐行操作,也不支持回滚。
最后修改: 2025年01月28日 星期二 13:31