删除数据
表中插入数据后,可以使用 DELETE 语句或其他语句来删除表中的记录。本文介绍了相关语句的使用方法和示例。
数据删除准备
在删除表数据前,请确认以下事项:
-
请确认您已连接到 seekdb,连接数据库的操作请参见 连接方式概述。
-
请确认您已拥有待操作的表的
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 的所有行记录,示例如下:
DELETE FROM t_insert WHERE value = 10004;
Query OK, 1 row affected
删除所有数据
当表中的数据量较小时,可以直接使用 DELETE 语句删除所有行记录。
示例:
-
删除
t_insert表中的所有行数据。DELETE FROM t_insert;
Query OK, 3 row affected当表中数据记录多达百万以上,一次性执行删除可能会出现性能问题,建议根据表内的信息使用
WHERE条件进行分批删除,或者直接 使用 TRUNCATE TABLE 语句清空表数据。 -
筛选表
t_insert中value列数据,分别执行多条语句分批删除value < 10000,value < 20000,value < 30000的数据。DELETE FROM t_insert WHERE value < 100000;
DELETE FROM t_insert WHERE value < 200000;
DELETE FROM t_insert WHERE value < 300000;
使用 TRUNCATE TABLE 语句清空表数据
TRUNCATE TABLE 语句用于完全清空指定表,但是保留表结构,包括表中定义的分区信息。从逻辑上来讲,该语句等价于删除所有行的 DELETE FROM 语句。
TRUNCATE TABLE 语句的语法格式如下:
TRUNCATE [TABLE] table_name;
通过 TRUNCATE TABLE 语句清空表 t_insert 表中的所有数据,示例如下:
TRUNCATE TABLE t_insert;
更多 TRUNCATE TABLE 语句的使用及说明请参见 TRUNCATE TABLE。