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

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

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

# 删除数据

更新时间：2026-07-04 16:59:49

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

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

## 数据删除准备

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

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

  #### 说明

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

## 使用 DELETE 语句删除数据

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

#### 说明

除了 `DELETE` 语句外，`REPLACE INTO` 语句也可能会删除数据，`REPLACE INTO` 语句相关的操作及示例请参见 [替换数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682547)。

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

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

```

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

### 删除部分数据

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

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

```sql
obclient [test]> DELETE FROM t_insert WHERE value = 10004;
Query OK, 1 row affected

```

### 删除所有数据

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

示例：

- 删除 `t_insert` 表中的所有行数据。

  ```sql
  obclient [test]> DELETE FROM t_insert;
  Query OK, 3 row affected

  ```

  当表中数据记录多达百万以上，一次性执行删除可能会出现性能问题，建议根据表内的信息使用 `WHERE` 条件进行分批删除，或者直接 **使用 TRUNCATE TABLE 语句清空表数据**。
 - 筛选表 `t_insert` 中 `value` 列数据，分别执行多条语句分批删除 `value < 10000`，`value < 20000`，`value < 30000` 的数据。

  ```sql
  obclient [test]> DELETE FROM t_insert WHERE value < 100000;

  obclient [test]> DELETE FROM t_insert WHERE value < 200000;

  obclient [test]> DELETE FROM t_insert WHERE value < 300000;

  ```

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

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

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

```sql
TRUNCATE [TABLE] table_name;

```

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

```sql
obclient [test]> TRUNCATE TABLE t_insert;

```

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

## 相关文档

- [插入数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682545)
 - [更新数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682544)
 - [替换数据](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005682547)

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