SQL DELETE 删除

时间:2018-11-15 17:16:27  来源:igfitidea点击:

在本教程中,我们将学习如何使用SQL DELETE语句删除表中的一行或多行

DELETE语句将永久删除表中的一行或多行。

DELETE语句的语法如下:

DELETE FROM table
WHERE
    condition;

要删除表中的一行或多行,请执行以下操作:
首先,在DELETE FROM子句中指定要删除数据的表名。
其次,在WHERE子句中放置一个条件,以指定要删除哪些行。如果省略WHERE子句,则语句将删除表中的所有行。

如果要删除一个很大的表中的所有行,应该使用TRUNCATE table语句,这比DELETE语句更有效。

SQL DELETE 示例

SQL DELETE–删除表中的一行数据

下面的语句从employees表中删除id为3的员工:

DELETE FROM employees
WHERE employeeID = 3;

SQL DELETE–删除表中的所有行

要删除employees表中的所有行,只需执行以下查询:(不建议执行这类操作。 在执行此操作之前最好进行备份)

DELETE FROM employees;

SQL DELETE–删除多个表中的相关行

如果要删除表中与另一个表中其他行关联的行,则会变得更加复杂。
例如,每个员工在一个或多个地区工作,每个地区有多个员工。employeeterritories表用于存储员工与区域之间的关系。

当删除employees表中的行时,还必须删除employeeterritories表中的相关行。为此,必须执行以下两个DELETE语句:

DELETE FROM employees
WHERE employeeID = 3;
DELETE FROM employeeterritories
WHERE employeeID = 3

大多数数据库管理系统允许您创建外键约束,这样,如果删除表中的行,相关表中相应的行也会自动删除。这确保了数据的完整性。在这种情况下,只需执行第一个DELETE语句,就可以删除两个表中的行。

如果数据库管理系统不支持外键约束,则必须在单个事务中同时执行两个DELETE语句,以确保语句以all-or-nothing模式执行。(即要么同时执行成功,要么都不执行。)