首页 > 编程知识 正文

mysql删除数据库语句有哪些,mysql删除数据的三种方式

时间:2023-05-04 22:18:55 阅读:230509 作者:4082

MySQL 删除数据操作使用 DELETE FROM 语句,它属于 DML(数据操作语言)范畴,DELETE 语句是一行一行地进行删除操作,同时它会将每行的操作记录到事务日志中,以便可以进行回滚操作,即表示 DELETE 语句操作是可以回滚的,这有别于 TRUNCATE 语句。

DELETE FROM

MySQL DELETE 语句主要两种形式,一个是单表删除数据,另一个是多表删除数据。

语法

单表删除数据语句:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [[AS] tbl_alias]

[PARTITION (partition_name [, partition_name] ...)]

[WHERE where_condition]

[ORDER BY ...]

[LIMIT row_count]

主要的可选项:

WHERE

WHERE 子句指定要删除的行,如果未指定,则删除所有的行,即所有的数据,后面的 where_condition 是一个表达式,返回 true 的每行即表示要删除的行。

ORDER BY

如果指定了该子句,表示按照指定的顺序进行一行一行地删除。

LIMIT

该子句限制可以删除的行数,它只适用于单表删除,但不适用于多表删除。此外,LIMIT 子句的还有一层最大意义是,如果删除的行数过多,会带来性能的损耗,这是可以通过该子句可以有效地控制删除的速度。

多表删除语句:

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]

tbl_name[.*] [, tbl_name[.*]] ...

FROM table_references

[WHERE where_condition]

DELETE [LOW_PRIORITY] [QUICK] [IGNORE]

FROM tbl_name[.*] [, tbl_name[.*]] ...

USING table_references

[WHERE where_condition

修饰符

DELETE 语句支持修饰符主要如下:

LOW_PRIORITY

如果指定 LOW_PRIORITY 修饰符,表示服务端直到没有其他客户端读取该表时,才执行删除操作,即它是延迟操作;它只作用于表级锁的存储引擎(如 MyISAM、MEMORY、MERGE)。

QUICK

对于 MyISAM 存储引擎,如果使用 QUICK 修饰符,则存储引擎在删除期间不会合并索引的叶子节点,这可能会加快某些类型的删除操作。

IGNORE

IGNORE 修饰符表示在删除期间若出现错误,它会进行忽略(如在解析阶段遇到的错误),会作为警告信息返回。

示例

删除表中所有的数据

这是最常用的操作情况,示例如下:

mysql> DELETE FROM knowledgedict_tbl;

删除 knowledgedict_tbl 表的所有数据。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。