---
title: "DELETE - OceanBase 数据库 V4.1.0 | OceanBase 文档中心"
description: "DELETE 描述 该语句用来删除表中符合条件的行，包括单表删除及多表删除两种方式。 语法 DELETE [hint_options] [FROM] table_factor [ WHERE where_condition ] [{ RETURNING | RETURN } returning_exprs [ int…"
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.1.0

# DELETE

更新时间：2023-07-28 10:45:58

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.1.0/zh-CN/700.reference/400.development-reference/100.sql-syntax/300.common-tenant-of-oracle-mode/900.sql-statement-of-oracle-mode/200.dml-of-oracle-mode/100.delete-of-oracle-mode.md)  

## 描述

该语句用来删除表中符合条件的行，包括单表删除及多表删除两种方式。

## 语法

```sql
DELETE [hint_options] [FROM] table_factor [ WHERE where_condition ]
    [{ RETURNING | RETURN } returning_exprs [ into_clause ]]

table_factor:
    {table_name | table_subquery | '(' table_reference ')' }

where_condition:
    expression

returning_exprs:
    projection_col_name [,projection_col_name ...]

into_clause:
    { INTO into_var_list | BULK COLLECT INTO into_var_list}

into_var_list:
    { USER_VARIABLE | ref_name } [, { USER_VARIABLE | ref_name }...]

```

## 参数解释

| 参数 | 描述 |
| --- | --- |
| hint_options | 指定 Hint 选项，为可选项。 |
| table_factor | 指定需要删除的表名（基表、可更新视图、特殊子查询）。 |
| where_condition | 删除的表需要满足的过滤条件。 |
| returning_exprs | 返回删除数据前的投影列。 |
| into_clause | 将删除数据前的投影列插入到指定列表。 |
| ref_name | 变量名。 |

#### 注意

特殊子查询是指类似于可更新视图对应的子查询，这类子查询不应该包含复杂的算子（例如 `GROUP BY`、`DISTINCT`、`WINDOW FUNCTION` 等）。

## 示例

创建表 `tbl1` 并插入数据。

```sql
obclient> CREATE TABLE tbl1(col1 INT PRIMARY KEY, col2 INT);
Query OK, 0 rows affected

obclient> INSERT INTO tbl1 VALUES(1,1),(2,2),(3,3),(4,4);
Query OK, 4 rows affected
Records: 4  Duplicates: 0  Warnings: 0

obclient> SELECT * FROM tbl1;
+------+------+
| COL1 | COL2 |
+------+------+
|    1 |    1 |
|    2 |    2 |
|    3 |    3 |
|    4 |    4 |
+------+------+
4 rows in set

```

- 单表删除：删除 `col1=2` 的行，其中 `col1` 列为表 `tbl1` 中的 Primary Key。

  ```sql
  obclient>DELETE FROM tbl1 WHERE col1 = 2;
  Query OK, 1 row affected

  obclient>SELECT * FROM tbl1;
  +----+------+
  | COL1 | COL2 |
  +----+------+
  |  1 |    1 |
  |  3 |    3 |
  |  4 |    4 |
  +----+------+
  3 rows in set

  ```
 - 单表删除：直接操作子查询进去删除操作。

  ```sql
  obclient> DELETE FROM (SELECT * FROM tbl1);
  Query OK, 4 rows affected

  obclient> SELECT * FROM tbl1;
  Empty set

  ```
 - 单表删除：包含 `RETURNING` 子句。

  ```sql
  obclient> DELETE FROM tbl1 RETURNING col1;
  +----+
  | COL1 |
  +----+
  |  1 |
  |  2 |
  |  3 |
  |  4 |
  +----+
  4 rows in set

  obclient>SELECT * FROM t1;
  Empty set

  ```

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
