欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/
表中插入数据后,可以使用 DELETE 语句或其他语句来删除表中的记录。本文介绍了相关语句的使用方法和示例。
数据删除准备
在更新表数据前,请确认以下事项:
请确认您已连接到数据库的 MySQL 租户,连接数据库的操作请参见 连接数据库。
说明
当前登录租户所属的租户模式可以由
sys租户通过查询oceanbase.DBA_OB_TENANTS视图进行确认。请确认您已拥有待操作的表的
DELETE权限。如果使用TRUNCATE TABLE语句清空表数据,则还需要拥有该表的CREATE权限。
使用 DELETE 语句删除数据
通常使用 DELETE 语句来删除表中的部分数据或全部数据。
说明
除了 DELETE 语句外,REPLACE INTO 语句也可能会删除数据,REPLACE INTO 语句相关的操作及示例请参见 替换数据。
简单的 DELETE 语句的语法格式如下:
DELETE FROM table_name [ WHERE condition ] ;
| 参数 | 是否必填 | 描述 |
|---|---|---|
| table_name | 是 | 指定需要删除数据的表。 |
| [ WHERE condition ] | 否 | 条件子句指定要删除的数据必须满足的条件,如果没有提供就全表删除。 |
删除部分数据
通过 DELETE 语句加 WHERE 条件,可以删除表中满足条件的部分数据。
删除 t_insert 表中符合 value = 10004 的所有行记录,示例如下:
obclient [test]> DELETE FROM t_insert WHERE value = 10004;
Query OK, 1 row affected
删除所有数据
当表中的数据量较小时,可以直接使用 DELETE 语句删除所有行记录。
示例:
删除
t_insert表中的所有行数据。obclient [test]> DELETE FROM t_insert; Query OK, 3 row affected当表中数据记录多达百万以上,一次性执行删除可能会出现性能问题,建议根据表内的信息使用
WHERE条件进行分批删除,或者直接 使用 TRUNCATE TABLE 语句清空表数据。筛选表
t_insert中value列数据,分别执行多条语句分批删除value < 10000,value < 20000,value < 30000的数据。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 语句的语法格式如下:
TRUNCATE [TABLE] table_name;
通过 TRUNCATE TABLE 语句清空表 t_insert 表中的所有数据,示例如下:
obclient [test]> TRUNCATE TABLE t_insert;欢迎访问OceanBase官网获取更多信息:https://www.oceanbase.com/




