暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

OceanBase Cloud快速入门第34期:如何删除数据?

欢迎访问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 < 10000value < 20000value < 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/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论