SQL DELETE 语句

2025年7月22日 | 阅读 4 分钟

SQL DELETE 语句用于从表中删除行。通常,DELETE 语句会从表中移除一个或多个记录。

语法

在上面的语法中,

  • table_name 表示我们从中删除数据的表的名称。
  • Where 子句是可选的,有时用于添加条件。

为了删除数据,请以 Employee 表为例。

示例表

EMPLOYEE

EMP_IDEMP_NAMECITY工资年龄
1AngelinaChicago20000030
2RobertAustin30000026
3基督徒Denver10000042
4KristenWashington50000029
5罗素Los angels20000036
6Marry加拿大60000048

删除单条记录

从 EMPLOYEE 表中删除 EMP_NAME = 'Kristen' 的行。这将只删除第四行。

查询

说明

执行上述语句后,如果语句中没有错误,则会发送“1 row deleted”消息。这将删除 "EMPLOYEE" 表中的上述行。用户注意列数据类型及其相应值是否匹配。上面的查询将删除名为 'Kristen' 的员工的信息。

如果想在执行语句后检查 EMPLOYEE 表的内容,请使用以下 SELECT 语句。

输出:执行此查询后,EMPLOYEE 表将如下所示:

EMP_IDEMP_NAMECITY工资年龄
1AngelinaChicago20000030
2RobertAustin30000026
3基督徒Denver10000042
5罗素Los angels20000036
6Marry加拿大60000048

删除多条记录

从 EMPLOYEE 表中删除 AGE 为 30 的行。这将删除两行(第一行和第三行)。

查询

说明

执行上述语句后,如果语句中没有错误,则会发送“2 rows deleted”消息。这将删除 "EMPLOYEE" 表中指定的行。用户注意列数据类型及其相应值是否匹配。上面的查询将删除年龄为 30 的员工的信息。

如果想在执行语句后检查 EMPLOYEE 表的内容,请使用以下 SELECT 语句。

输出:执行此查询后,EMPLOYEE 表将如下所示:

EMP_IDEMP_NAMECITY工资年龄
2RobertAustin30000026
3基督徒Denver10000042
5罗素Los angels20000036
6Marry加拿大60000048

删除所有记录

从 EMPLOYEE 表中删除所有行。之后,将没有记录显示。EMPLOYEE 表将变为空。

语法

查询

说明

执行上述语句后,如果语句中没有错误,则会发送“rows deleted”消息。这将删除 "EMPLOYEE" 表中指定的行。用户注意列数据类型及其相应值是否匹配。上面的查询将删除员工表的所有信息。

如果想在执行语句后检查 EMPLOYEE 表的内容,请使用以下 SELECT 语句。

输出:执行此查询后,EMPLOYEE 表将如下所示:

EMP_IDEMP_NAMECITY工资年龄

注意:使用 WHERE 子句中的条件,我们可以删除单个记录和多个记录。如果要删除表中的所有记录,则无需使用 WHERE 子句。

Delete 语句与 TOP 子句

示例

说明

执行上述语句后,如果语句中没有错误,则会发送“2 rows deleted”消息。用户注意列数据类型及其相应值是否匹配。上面的查询将从 employee 表中删除前 2 行。

如果想在执行语句后检查 EMPLOYEE 表的内容,请使用以下 SELECT 语句。

输出

EMP_IDEMP_NAMECITY工资年龄
3基督徒Denver10000042
4KristenWashington50000029
5罗素Los angels20000036
6Marry加拿大60000048

关于 SQL Delete 语句的常见问题

1. 如果在 delete 语句中忘记使用 WHERE 子句会发生什么?

答案:这是可选的,但如果我们不在查询中使用 WHERE 子句,删除操作将删除表中的所有行。

以 Class 表为例

R.No名称条款
1安什A
2HarshA
3拉曼 (Raman)A

例如

上面的查询将删除表中的所有行。


下一个主题DBMS SQL 视图