OceanBase
  • 产品
  • 解决方案
  • 客户
  • 合作伙伴
  • 资源与服务
  • 文档
  • 社区
云控制台登录 / 注册
  • 免费试用
OceanBase AI 数据平台

基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。

一体化能力

TP 事务处理

关键业务稳定运行,保障数据零丢失

AP 实时分析

事务分析一体,驱动智能决策与运营

AI 现代负载

统一多模态数据,支撑生产级应用

关键产品
OceanBase 分布式数据库

首批通过安全可靠测评,面向关键业务

OceanBase 集中式数据库

集中式架构,兼具性能与成本优势

OceanBase AI 数据库

面向 AI 应用与 Agent 的多模数据库

OceanBase AI 湖库

湖库一体的 AI 多模态数据系统

OceanBase DataPilot

企业级 AI 数据分析 Agent

OceanBase Agentbase

企业级 Agent 后端基础设施

OceanBase OAgent

数据库 AI 运维 Agent

OB Cloud

一体化云数据库,提供多云一致体验

OceanBase 数据库一体机

软硬一体,极致性能与高可靠性保障

OceanBase AI 一体机

开箱即用的 AI 数据库一体机

OMA 迁移评估工具

全链路数据库迁移评估

OMS 数据迁移工具

一站式数据传输与同步

OCP 运维管理工具

数据库全生命周期管理

ODC 开发者工具

数据库开发与管控协同

OAS 自治服务工具

数据库智能诊断与自治

通用场景
全场景业务系统 OLTP
实时分析混合负载
异地多活
多基础设施部署
一站式传统数据库升级
混合云部署
一库多芯软硬件混合部署
分布式数据库单机部署
大存储类数据库降本
冷数据归档降本
多实例资源整合
分库分表一体化升级
高并发场景
数据中台
行业解决方案
国有大行和股份制银行核心系统解决方案
区域性银行核心系统解决方案
寿险核心系统解决方案
产险核心系统解决方案
资管交易类系统解决方案
资管 TA 清算类系统解决方案
运营商核心系统解决方案
人社核心系统解决方案
电力核心系统解决方案
行业专区
银行专区

助力银行完成各类核心业务系统升级

保险专区

寿险、产险核心系统升级的更佳选择

零售专区

助力200+零售行业客户规模化落地

DB 大咖说
OceanBase客户-爱奇艺爱奇艺

百亿级卡券业务的“单库双擎”架构升级

OceanBase客户-四川银行四川银行

800个测试用例选定分布式数据库

OceanBase客户-太平洋保险太平洋保险

先难后易,核心系统数据库升级复盘

行业案例
OceanBase客户-交通银行交通银行

核心数据库的“分布式革命”

OceanBase客户-中国移动中国移动

B域核心CRM&BOSS近乎零改造分布式升级

OceanBase客户-理想理想

打造领先的智能制造系统和自动驾驶体验

演讲实录
OceanBase客户-中国联通中国联通

集团应用分布式数据库覆盖B/O/M域

OceanBase客户-国泰海通国泰海通

智能推送系统稳定支撑单日亿级消息处理量

OceanBase客户-中国联合航空中国联合航空

中国首款机票盲盒背后的数据库力量

用户实践
OceanBase客户-北京银行北京银行

最快速度完成40余套系统国产数据库升级

OceanBase客户-VIVOVIVO

替换 MySQL 分库分表,探索成本效益最优

OceanBase客户-滴滴滴滴

数据库大规模运维体系建设及落地实践

合作伙伴
合作伙伴类型
联合解决方案
产业生态伙伴
经销商伙伴
技术服务伙伴
培训认证伙伴
生态联合解决方案
神州信息 x OceanBase 银行核心系统
长亮科技 x OceanBase 新核心系统
中电金信 x OceanBase 金融分布式核心系统
天阳科技 x OceanBase 贷记卡方案
易诚互动 x OceanBase 手机银行方案
恒生 x OceanBase UF3.0/O45/TA/估值方案
商业发行版
云树®数据库软件 ActionDB
服务
支持与服务
提交工单
软件下载
OceanBase 企业版
OceanBase 社区版
OB Cloud
学习
培训与认证
在线课堂
在线体验
开发者
开发者中心
资料
行业报告与白皮书
官方博客
年度发布会资料
开发者大会资料
oceanbase白皮书

金融核心系统数据库升级路径与场景实践

oceanbase白皮书

人社关键业务数据库一体化升级实践

产品文档
oceanbaseOceanBase 数据库
数据库一体机
oceanbaseOceanBase AI 数据库
工具与组件
oceanbaseOB Cloud 云数据库
驱动和中间件
快速上手
OceanBase 数据库
OB Cloud 云数据库
知识库
汇聚常见产品使用问题案例
在线体验

Demo与实验,感受 OceanBase 的核心能力与应用场景

OceanBase 最佳实践
了解 OceanBase 分布式数据库的架构与系统原理
技术博客

技术解析 | 用户实践 | 社区月报

在线课堂

电子书 |视频课程|在线培训

Developer Hub
应用开发Demo | 数据开发与集成工具
问答论坛

快速答疑 | 常见问题 | 技术交流

社区活动

Meetup | 技术公开课

GitHub

查看源码 | 贡献代码 | 建议反馈

加入社区

社区组织 | 社区用户贡献 |开发者贡献

进入社区首页
oceanbase数据库大赛

第六届OceanBase数据库大赛

oceanbase免费课程

《Easy Data x AI》:面向所有 AI 爱好者的 Data 与 AI 基础知识入门教程

切换语言
  • 中文站 - 简体中文
  • International - English
  • 日本站 - 日本語

OceanBase

OceanBase 海扬数据库始创于 2010 年,是完全自主研发的数据库公司。2020年开始独立商业化运作,历经15年大规模核心场景验证,目前是中国数据库的领军企业之一。从分布式数据库到 AI 数据库,为企业提供安全、稳定、可扩展的数据底座,推动数据基础设施全面拥抱 AI 时代。

关于我们

关于 OceanBase最新动态资质荣誉客户专家委员会招贤纳士合作伙伴年度发布会开发者大会

资源与服务

支持与服务文档知识库软件与工具下载培训与认证在线体验数据库专题视频

社区

快速上手开发者中心博客活动学习问答GitHub

数据库百科

分布式数据库国产数据库OLTP 数据库OLAP 数据库HTAP 数据库数据库向量数据库向量检索

联系我们

服务热线:
400-109-0633
商务咨询
培训认证技术支持媒体合作
京公网安备11010802047223号京公网安备11010802047223号
京ICP备20024574号-1
合字B1.B2-20250395
网站服务协议隐私协议安全响应协议
OceanBase 版权所有 © 2026 基础资源和备案服务由阿里云提供
文档反馈
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V4.6.0
  5. 参考指南
  6. SQL 参考
  7. SQL 语法
  8. 普通租户(MySQL 模式)
  9. SQL 语句
  10. DELETE
分布式版-V4.6.0
  • What's New
  • 简介
  • 快速上手
  • 应用开发
  • 部署
  • 升级
  • 数据迁移
  • 管理数据库
  • AP
  • AI
  • 生态集成
  • 实践教程
  • 参考指南
    • 系统原理
    • 系统管理
    • 数据库对象管理
    • 数据库设计规范和约束
    • SQL 参考
      • SQL 概述
      • SQL 语法
        • 系统租户
        • 普通租户(MySQL 模式)
          • 基本元素
          • 运算符
          • 函数
          • 查询和子查询
          • SQL 语句
            • 通用语法
            • 通用表表达式
            • ALTER COMPILE
            • ALTER DATABASE
            • ALTER LOCATION
            • ALTER MATERIALIZED VIEW
            • ALTER MATERIALIZED VIEW LOG
            • ALTER EXTERNAL TABLE
            • ALTER OUTLINE
            • ALTER SENSITIVE RULE
            • ALTER SEQUENCE
            • ALTER/CHANGE/MODIFY EXTERNAL_STORAGE_DEST
            • ALTER SYSTEM FLUSH SEQUENCE CACHE
            • MAJOR 和 MINOR
            • VALIDATE
            • ALTER TABLE
            • ALTER TABLEGROUP
            • ALTER TABLESPACE
            • ALTER USER
            • ALTER VIEW
            • ALTER INSTANCE ROTATE INNODB MASTER KEY
            • ALTER EVENT
            • ANALYZE
            • CACHE INDEX
            • CREATE CONCURRENT_LIMITING_RULE
            • CREATE DATABASE LINK
            • CREATE DATABASE
            • CREATE EXTERNAL CATALOG
            • CREATE EXTERNAL TABLE
            • CREATE INDEX
            • CREATE LOCATION
            • CREATE MATERIALIZED VIEW
            • CREATE MATERIALIZED VIEW LOG
            • CREATE OUTLINE
            • CREATE FORMAT OUTLINE
            • CREATE RESTORE POINT
            • CREATE ROLE
            • CREATE SENSITIVE RULE
            • CREATE SEQUENCE
            • CREATE TABLE
            • CREATE TABLEGROUP
            • CREATE TABLESPACE
            • CREATE USER
            • CREATE VIEW
            • CHECKSUM TABLE
            • CREATE EVENT
            • DEALLOCATE PREPARE
            • DROP DATABASE LINK
            • DELETE
            • DESCRIBE
            • DROP CATALOG
            • DROP CONCURRENT_LIMITING_RULE
            • DROP DATABASE
            • DROP EVENT
            • DROP INDEX
            • DROP LOCATION
            • DROP MATERIALIZED VIEW
            • DROP MATERIALIZED VIEW LOG
            • DROP OUTLINE
            • DROP ROLE
            • DROP SENSITIVE RULE
            • DROP TABLE
            • DROP TABLEGROUP
            • DROP TABLESPACE
            • DROP SEQUENCE
            • DROP USER
            • DROP VIEW
            • DROP RESTORE POINT
            • EXECUTE
            • EXPLAIN
            • FLASHBACK
            • FLUSH TABLE
            • GRANT
            • HELP
            • INSERT
            • KILL
            • LOAD DATA
            • LOAD_FILE
            • LOAD INDEX INTO CACHE
            • LOCK TABLES
            • OPTIMIZE
            • PREPARE
            • PURGE
            • PURGE RECYCLEBIN
            • RENAME USER
            • RENAME TABLE
            • REPLACE
            • REPAIR TABLE
            • REMOVE
            • REVOKE
            • SAVEPOINT
            • SCHEMA
            • SELECT INTO
            • SELECT
            • SET DEFAULT ROLE
            • SET
            • SET CATALOG
            • SET CHARSET
            • SET NAMES
            • SET PASSWORD
            • SET ROLE
            • SET TRANSACTION
            • SHOW
            • SUBMIT JOB
            • SHOW JOB STATUS
            • CANCEL JOB
            • TRANSACTION
            • TRUNCATE TABLE
            • UNLOCK TABLES
            • UPDATE
            • USE
            • VALUES
            • XA TRANSACTION
          • DDL 功能
          • 伪列
          • 条件
        • 普通租户(Oracle 模式)
      • SQL 实践和建议
      • 预留关键字(MySQL 模式)
      • 预留关键字(Oracle 模式)
      • MySQL 租户严格模式下的数据类型转换行为
    • PL 参考
    • 系统视图
    • 配置项和系统变量
    • 错误码
    • 性能调优
    • 数据库代理
    • 驱动
    • 平台产品
    • 组件 & 工具
    • 数据库插件
  • 常见问题
  • 版本发布记录
  • 术语
  1. 文档中心
  2. OceanBase 数据库
  3. 分布式版
  4. V4.6.0
  5. 参考指南
  6. SQL 参考
  7. SQL 语法
  8. 普通租户(MySQL 模式)
  9. SQL 语句
  10. DELETE

DELETE

更新时间:2026-07-15 15:16:39

github-fill编辑
编组分享

描述

该语句用于删除表中符合条件的行(数据),包括单表删除和多表删除两种方式。

使用限制及注意事项

无论是多表删除还是单表删除都不支持直接对子查询进行删除操作,例如 DELETE FROM (SELECT * FROM t1);。

权限要求

执行 DELETE 语句,需要当前用户拥有待操作表的 DELETE 权限。有关 OceanBase 数据库权限的详细介绍,请参见 MySQL 模式下的权限分类。

语法

single_table_delete_syntax:
    DELETE [hint_options] [IGNORE]
        FROM table_name
        [PARTITION (partition_name_list)]
        [WHERE where_condition_list]
        [ORDER BY order_expression_list]
        [LIMIT row_count];

partition_name_list:
    partition_name [, partition_name ...]

where_condition_list:
    where_condition [, where_condition ...]

where_condition:
    expression

order_expression_list:
    order_expression [, order_expression ...]

order_expression:
    expression [ASC | DESC]

multiple_table_delete_syntax:
    DELETE [hint_options]
        table_name_list
        FROM table_references
        [WHERE where_condition_list];
Or:
    DELETE [hint_options]
        FROM table_name_list
        USING table_references
        [WHERE where_condition_list];

table_name_list:
    table_name[.*] [, table_name[.*] ...]

table_references:
    table_reference [, table_reference ...]

table_reference:
    table_name
    | joined_table
    | table_subquery

参数解释

参数 描述
single_table_delete_syntax 表示单表删除行的 SQL 语法。
hint_options 可选项,用于指定 hint 选项。有关 Hint 的介绍信息,参见 Optimizer Hint。
IGNORE 可选项,在删除行的过程中忽略那些可被忽略的错误。当前版本仅支持该关键字语法,功能不生效。
table_name 指定需要删除数据的表名。
PARTITION (partition_name_list) 可选项,用于指定要删除数据的分区名称列表。如果删除多个分区数据,分区名称间使用英文逗号分隔。删除分区数据的详细介绍可参见下文 partition_name。
WHERE where_condition_list 可选项,用于指定删除特定行的过滤条件列表。如果没有 WHERE 子句,则删除所有行。删除特定条件数据的详细介绍可参见下文 where_condition。
ORDER BY order_expression_list 可选项,用于指定要删除行的排序键列表。通常与 LIMIT 子句一起使用。删除顺序的详细介绍可参见下文 order_expression。
LIMIT row_count 可选项,用于指定最多删除的行数。row_count 的值只能为整数。
multiple_table_delete_syntax 表示多表删除行的 SQL 语法。
table_name_list 指定要删除数据的表的列表。

注意

如果在 table_references 子句中为表声明了别名,则在 table_name_list 子句中引用该表时必须使用该别名。

table_references 指定要从中删除数据的表或表的组合,即多表删除时指定的待选择的表序列。详细介绍可参见下文 table_reference。

注意

仅支持在 table_references 子句中声明表别名,其他地方允许别名引用,但不允许别名声明。

partition_name

partition_name:指定需要删除数据的分区名。

示例如下:

  1. 创建表 tbl1 并插入测试数据。

    CREATE TABLE tbl1(col1 INT, col2 VARCHAR(20))
        PARTITION BY HASH(col1) PARTITIONS 5;
    
    INSERT INTO tbl1 VALUES(1, 'A1'),(2, 'A2'),(3, 'A3'),(4, 'A4'),(5, 'A5'),(6, 'A6'),(7, 'A7'),(8, 'A8'),(9, 'A9');
    
  2. 查看表 tbl1 中 p0 和 p1 分区的数据。

    SELECT * FROM tbl1 PARTITION(p0, p1);
    

    返回结果如下:

    +------+------+
    | col1 | col2 |
    +------+------+
    |    5 | A5   |
    |    1 | A1   |
    |    6 | A6   |
    +------+------+
    3 rows in set
    
  3. 删除表 tbl1 中 p0 和 p1 分区的数据。

    DELETE FROM tbl1 PARTITION(p0, p1);
    

    返回结果如下:

    Query OK, 3 rows affected
    

where_condition

expression:指定可用于过滤要删除的行的条件表达式。

示例如下:

  1. 查看表 tbl1 中 col1 = 2 的数据。

    SELECT * FROM tbl1 WHERE col1 = 2;
    

    返回结果如下:

    +------+------+
    | col1 | col2 |
    +------+------+
    |    2 | A2   |
    +------+------+
    1 row in set
    
  2. 删除表 tbl1 中 col1 = 2 的数据。

    DELETE FROM tbl1 WHERE col1 = 2;
    

    返回结果如下:

    Query OK, 1 row affected
    

order_expression

expression [ASC \| DESC]:指定按升序(ASC,默认值)或降序(DESC)排序的表达式。

示例如下:

  1. 查看表 tbl1 中的数据。

    SELECT * FROM tbl1;
    

    返回结果如下:

    +------+------+
    | col1 | col2 |
    +------+------+
    |    7 | A7   |
    |    3 | A3   |
    |    8 | A8   |
    |    4 | A4   |
    |    9 | A9   |
    +------+------+
    5 rows in set
    
  2. 从表 tbl1 中删除按照 col1 列降序排序后的第一个行(即删除排序后最大的一行数据)。

    DELETE FROM tbl1
        ORDER BY col1 DESC
        LIMIT 1;
    

    返回结果如下:

    Query OK, 1 row affected
    
  3. 再次查看表 tbl1 中的数据。

    SELECT * FROM tbl1;
    

    返回结果如下:

    +------+------+
    | col1 | col2 |
    +------+------+
    |    7 | A7   |
    |    3 | A3   |
    |    8 | A8   |
    |    4 | A4   |
    +------+------+
    4 rows in set
    

table_reference

table_reference:指的是在 SQL 语句中用于指代表的部分,即指代表的不同方式。具体如下:

  • table_name:表示表的名称,并且也可以指定分区删除数据。

    示例如下:

    1. 创建表 tbl2 并插入测试数据。

      CREATE TABLE tbl2(col1 INT PRIMARY KEY, col2 INT);
      
      INSERT INTO tbl2 VALUES(1,1),(2,2),(3,3),(4,4),(5,5);
      
    2. 创建表 tbl3 并插入测试数据。

      CREATE TABLE tbl3(col1 INT PRIMARY KEY, col2 INT) PARTITION BY KEY(col1) PARTITIONS 4;
      
      INSERT INTO tbl3 VALUES(1,11),(2,22),(3,3),(6,66),(7,77),(8,88);
      
    3. 删除 tbl2,tbl3 表中 tbl2.col1 = tbl3.col1 AND tbl2.col2 = tbl3.col2 的数据。

      DELETE tbl2, tbl3
          FROM tbl2, tbl3
          WHERE tbl2.col1 = tbl3.col1
          AND tbl2.col2 = tbl3.col2;
      

      或者

      DELETE FROM tbl2, tbl3
          USING tbl2, tbl3
          WHERE tbl2.col1 = tbl3.col1
          AND tbl2.col2 = tbl3.col2;
      
    4. 删除 tbl3 表中的 p0 分区中和 tbl2 表中满足 tbl2.col1 = tbl3.col1 的数据。

      DELETE tbl3 FROM tbl2,tbl3 PARTITION(p0) WHERE tbl2.col1 = tbl3.col1;
      
  • joined_table:表示连接的表,即可以指定多个表并且使用 JOIN 连接。

    示例如下:

    删除 tbl2 中与 tbl3 中 col1 相等且 col1 大于 1 的记录。

    DELETE tbl2
        FROM tbl2 INNER JOIN tbl3 ON tbl2.col1 = tbl3.col1
        WHERE tbl2.col1 > 1;
    
  • table_subquery:表示子查询的表。

    示例如下:

    使用子查询的方式删除 tbl2 和 tbl3 表中 tbl3.col1 < 2 AND tbl2.col1 = t3.col1 的行。

    DELETE FROM t2, t3
        USING tbl2 t2, (SELECT * FROM tbl3 WHERE tbl3.col1 < 2) t3
        WHERE t2.col1 = t3.col1;
    

示例

对可更新视图进行删除操作。

  1. 创建表 test_tbl1 并插入测试数据。

    CREATE TABLE test_tbl1(col1 INT PRIMARY KEY, col2 INT);
    
    INSERT INTO test_tbl1 VALUES(1,1),(2,2),(3,3);
    
  2. 创建视图 v1。

    CREATE VIEW v1
        AS SELECT * FROM test_tbl1;
    
  3. 查看 v1 数据。

    SELECT * FROM v1;
    

    返回结果如下:

    +------+------+
    | col1 | col2 |
    +------+------+
    |    1 |    1 |
    |    2 |    2 |
    |    3 |    3 |
    +------+------+
    3 rows in set
    
  4. 删除视图 v1 中 col1 = 1 的值。

    DELETE FROM v1
        WHERE col1 = 1;
    
  5. 再次查看 v1 数据。

    SELECT * FROM v1;
    

    返回结果如下:

    +------+------+
    | col1 | col2 |
    +------+------+
    |    2 |    2 |
    |    3 |    3 |
    +------+------+
    2 rows in set
    

相关文档

删除数据

本文目录

描述使用限制及注意事项权限要求语法参数解释partition_namewhere_conditionorder_expressiontable_reference示例相关文档
有帮助
无帮助
反馈
AI