---
title: "删除数据 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 删除数据 表中插入数据后，可以使用 DELETE 语句或其他语句来删除表中的记录。本文介绍了相关语句的使用方法和示例。 数据删除准备 在删除表数据前，请确认以下事项： 请确认您已连接到数据库的 Oracle 租户，连接数据库的操作请参见 连接方式概述 。 说明 当前登录租户所属的租户模式可以由 sys 租户通过查询 …
---
切换语言

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

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

# 删除数据

更新时间：2026-06-24 12:20:01

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/300.develop/200.application-development-of-oracle-mode/400.write-data-of-oracle-mode/300.delete-data-of-oracle-mode-in-develop.md)  

表中插入数据后，可以使用 `DELETE` 语句或其他语句来删除表中的记录。本文介绍了相关语句的使用方法和示例。

## 数据删除准备

在删除表数据前，请确认以下事项：

- 请确认您已连接到数据库的 Oracle 租户，连接数据库的操作请参见 [连接方式概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682578)。

  #### 说明

  当前登录租户所属的租户模式可以由 `sys` 租户通过查询 `oceanbase.DBA_OB_TENANTS` 视图进行确认。
 - 请确认您已拥有待操作的表的 `DELETE` 权限。如果使用 `TRUNCATE TABLE` 语句清空表数据，则还需要拥有该表的 `CREATE` 权限。查看当前用户权限的相关操作请参见 [查看用户权限](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685761)。如果不具备该权限，请联系管理员为您授权，用户授权的相关操作请参见 [直接授予权限](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685760)。

## 使用 DELETE 语句删除数据

通常使用 [DELETE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687603) 语句来删除表中的部分数据或全部数据。

简单的 `DELETE` 语句格式如下：

```sql
DELETE FROM table_name [ WHERE condition ];

```

| 参数 | 是否必填 | 描述 |
| --- | --- | --- |
| table_name | 是 | 指定需要删除数据的表 |
| [ WHERE condition ] | 否 | 条件子句指定要删除的数据必须满足的条件，如果没有提供就全表删除。 |

#### 说明

如果表记录数多达几百万以上，会形成大事务，可能会有性能问题。建议带上 `WHERE` 条件分批删除，或者使用 `TRUNCATE TABLE` 语句。

### 删除部分数据

通过 `DELETE` 语句加 `WHERE` 条件，可以删除表中满足条件的部分数据。

示例 1：删除 `t_insert` 表中符合 `value = 10004` 的所有行记录。

```shell
obclient [SYS]> SELECT * FROM t_insert;
+----+------+-------+------------+
| ID | NAME | VALUE | GMT_CREATE |
+----+------+-------+------------+
|  1 | CN   | 10002 | 31-OCT-22  |
|  2 | US   | 10004 | 31-OCT-22  |
|  3 | UK   | 10004 | 01-NOV-22  |
+----+------+-------+------------+
3 rows in set

obclient [SYS]> DELETE FROM t_insert WHERE value = 10004;
Query OK, 2 rows affected

obclient [SYS]> SELECT * FROM t_insert;
+----+------+-------+------------+
| ID | NAME | VALUE | GMT_CREATE |
+----+------+-------+------------+
|  1 | CN   | 10002 | 31-OCT-22  |
+----+------+-------+------------+
1 row in set

```

### 删除所有数据

当表中的数据量较小时，也可以直接使用 `DELETE` 语句删除所有行记录。

示例 2：删除表 `t_insert` 中的所有记录。

```shell
obclient [SYS]> DELETE FROM t_insert;
Query OK, 3 row affected

```

如果表中的数据记录多达百万条以上，一次性执行删除可能会出现性能问题，建议根据表内信息进行分批删除，示例如下。

示例 3： 分批删除 `value < 20000`，`value < 30000`，`value < 40000` 的数据。

```shell
obclient [SYS]> DELETE FROM t_insert WHERE value < 20000;

obclient [SYS]> DELETE FROM t_insert WHERE value < 30000;

obclient [SYS]> DELETE FROM t_insert WHERE value < 40000;

```

## 使用 TRUNCATE TABLE 语句清空表数据

`TRUNCATE TABLE` 语句用于完全清空指定表，但是保留表结构，包括表中定义的分区信息。从逻辑上来讲，该语句等价于删除所有行的 `DELETE FROM` 语句。

`TRUNCATE TABLE` 语句的语法格式如下：

```sql
TRUNCATE [TABLE] table_name;

```

示例 4：通过 `TRUNCATE TABLE` 语句清空表 `t_insert` 表中的所有数据。

```shell
obclient> TRUNCATE TABLE t_insert;

```

更多 `TRUNCATE TABLE` 语句的使用及说明请参见 [TRUNCATE TABLE](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687562)。

## 通过 DBLink 使用 DELETE 语句删除数据

当前 OceanBase 数据库支持通过 DBLink 删除 OceanBase 数据库（Oracle 模式）和 Oracle 数据库中的数据。

通过 DBLink 删除远端数据库表 `t5` 中 `C2 = 7` 的数据行的示例如下：

```shell
obclient> SET ob_trx_timeout = 1000000000;
Query OK, 0 rows affected

obclient> SELECT * FROM t5@orcl_dblink;
+------+------+
| C1   | C2   |
+------+------+
|    7 |    7 |
|    8 |    8 |
+------+------+
2 row in set

obclient> DELETE FROM t5@orcl_dblink WHERE C2 = 7;
Query OK, 1 row affected

obclient> commit;
Query OK, 0 rows affected

obclient> SELECT * FROM t5@orcl_dblink;
+------+------+
| C1   | C2   |
+------+------+
|    8 |    8 |
+------+------+
1 row in set

```

OceanBase 数据库 Oracle 模式支持把本地表数据写入（`INSERT`、`DELETE`、`UPDATE` 和 `MERGE INTO`）远端表，详细信息，参见 [通过 DBLink 修改远端数据库中的数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005683100)。

## 相关文档

- [插入数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682556)
 - [更新数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682558)
 - [替换数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682557)
 - [通过 DBLink 修改远端数据库中的数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005683100)

 上一篇 下一篇 ![有帮助](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) 咨询热线
