SQL DELETE 语句
在本教程中,您将学习如何使用 SQL 从数据库表中删除记录。
从表中删除数据
正如您使用 INSERT
语句将记录插入表中一样,您也可以使用 DELETE
语句从表中删除记录。
语法
DELETE
语句用于从表中删除一行或多行。
DELETE FROMtable_name
WHEREcondition
;
警告: DELETE
语句中的 WHERE
子句指定应删除哪些记录。 然而,它是可选的,但如果您省略或忘记 WHERE
子句,所有记录将从表中永久删除。
让我们从 创建表 章节中创建的 persons 表中删除一些记录。
假设我们的 persons 表当前有以下记录:
+----+--------------------+------------+-------------+ | id | name | birth_date | phone | +----+--------------------+------------+-------------+ | 1 | Peter Wilson | 1990-07-15 | 0711-020361 | | 2 | Carrie Simpson | 1995-05-01 | 0251-031259 | | 3 | Victoria Ashworth | 1996-10-17 | 0695-346721 | | 4 | George Bailey | 1993-03-05 | 0897-034214 | | 5 | Norman Bates | 1999-08-25 | 0522-556721 | +----+--------------------+------------+-------------+
根据条件删除记录
以下语句将从 persons 表中删除 id 大于 3 的行。
DELETE FROM persons WHERE id > 3;
执行查询后,persons 表将如下所示:
+----+--------------------+------------+-------------+ | id | name | birth_date | phone | +----+--------------------+------------+-------------+ | 1 | Peter Wilson | 1990-07-15 | 0711-020361 | | 2 | Carrie Simpson | 1995-05-01 | 0251-031259 | | 3 | Victoria Ashworth | 1996-10-17 | 0695-346721 | +----+--------------------+------------+-------------+
注意:请参阅SQL WHERE
子句的教程,了解如何在删除表中的记录时,根据多个条件形成复杂的查询。
删除所有数据
同样,如上所述,如果您没有在 DELETE
语句中指定 WHERE
子句,则表中的所有行都将被删除。 但是,目标表本身不会被删除,这意味着表结构、属性和索引将保持不变。
以下语句将从 persons 表中删除所有记录:
DELETE FROM persons;
现在,如果您尝试从 persons 表中获取 选择记录,您将得到一个空结果集。
Advertisements