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

关于 DELETE 语句

SQL新手 2022-12-08
414

DELETE 语句用来删除表中的记录,本文介绍了相关语句的使用方法和示例。

DELETE 语句

简单的 DELETE 语句格式如下:

DELETE FROM table_name [ WHERE condition ] ;
参数是否必填描述示例
table_name指定需要删除数据的表table1
[ WHERE condition ]条件子句指定要删除的数据必须满足的条件,如果没有提供就全表删除。where id=3

说明

如果表记录数多达几百万以上,会形成大事务,可能会有性能问题。建议带上 WHERE 条件分批删除,或者使用 TRUNCATE TABLE 语句。

示例

删除表中数据

删除 ordr 表中符合 o_w_id=2 的所有行数据。

DELETE FROM ordr WHERE o_w_id=2;

删除 ordr 表中所有行数据。

DELETE FROM ordr;

说明

除了 DELETE 语句外,REPLACE INTO 语句也可能会删除数据。

分批删除表中数据

当表中数据记录多达百万以上,一次性执行删除可能会出现性能问题,建议根据表内的信息进行分批删除。以下示例通过筛选表中 o_w_id 列数据,分批删除 o_w_id < 100000o_w_id < 200000o_w_id < 300000 的数据。

DELETE FROM ordr WHERE o_w_id < 100000;
DELETE FROM ordr WHERE o_w_id < 200000;
DELETE FROM ordr WHERE o_w_id < 300000;

清空表数据

TRUNCATE TABLE 语句用于完全清空指定表,但是保留表结构,包括表中定义的分区信息。从逻辑上说,该语句与用于删除所有行的 DELETE FROM 语句相同。以下示例通过 TRUNCATE TABLE 语句清空表 ordr。

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

评论