Oracle DELETE 语句

2025 年 2 月 13 日 | 阅读 3 分钟

在 Oracle 中,DELETE 语句用于从表中删除或删除单个或多个记录。 如果我们不需要知道表中行的物理顺序来执行 DELETE 操作。 Oracle 数据库引擎确定行的内部位置。 要从表中删除行,它必须存在于您的模式中,或者您必须对该表具有删除权限。

以下语法用于从表中删除一行。

语法

参数

1) table_name: 它指定您要删除的表。

2) conditions: 它指定必须满足的条件才能删除记录。 where 子句中的条件过滤掉实际要删除的记录。 您可以从表中删除零行或多行。 如果您不提供此类表达式,则 DELETE 语句将删除表中的所有行。 您可以在 where 子句中使用一个或多个多个条件。

以下是删除表中行的各种示例。

示例 1:让我们从 name = 'Sohan' 的客户表中删除记录。

Oracle 删除示例:一个条件

说明

此语句将从客户表中删除 name 为 "Sohan" 的所有记录。

示例 2:让我们从 last_name = 'Maurya' 且 customer_id > 2 的客户表中删除记录。

Oracle 删除示例:多个条件

说明

此语句将从 customers 表中删除 last_name 为 "Maurya" 且 customer_id 大于 2 的所有记录。

Oracle 删除示例:删除所有记录

示例 3:要删除客户表中的所有记录,请使用以下语句。

说明

执行后,上述语句将从客户表中删除所有记录。

Oracle 删除示例: (通过使用子查询从另一个表删除记录)

也可以借助子查询根据另一个表删除行。

示例 4:使用以下语句从另一个表删除记录。

说明

执行后,上述语句将删除 ID 等于 Employee 表中 ID 的客户,其中对应的 Post 包含以“A”开头的字符串。

Oracle 删除示例: (通过使用 EXISTS 子句从另一个表删除记录)

如果要基于另一个表中的值删除一个表中的记录,那么您也可以使用 Oracle EXISTS 子句。

示例 5:要使用 exists 子句从另一个表中删除记录,请使用以下语句。

说明

执行后,上述语句将删除客户 ID 与 Employee ID 匹配的所有客户记录。

Oracle Delete 语句的 MCQ

1. 以下哪种语法对于删除语句是正确的?

  1. Delete table_name;
  2. Delete from table_name;
  3. Delete table_name
  4. Delete from table_name

答案:b

Delete from table_name;

以上语句用于从表中删除记录。

2. 在以下子句列表中,哪个子句用于在 DELETE 语句中仅从表中删除特定记录?

  1. 其中
  2. Having
  3. FROM
  4. Group By

答案:a

DELETE FROM table_name WHERE conditions;

DELETE 语句中的 WHERE 子句用于仅从表中删除特定记录。

3. 要从表中删除所有记录,从删除语句中删除了以下哪个子句?

  1. 其中
  2. From
  3. Group By
  4. ALL

答案:a

DELETE FROM table_name WHERE conditions;

在删除语句中,从删除语句中删除 where 子句以从表中删除所有记录。