2026-03-26 11:19:48
SQL中主要的删除语句包括DELETE、DROP和TRUNCATE,它们的作用及区别如下:
DELETE语句
用于删除表中的特定行,需配合WHERE子句指定条件。执行时会逐行删除数据,并将每行的删除操作记录到事务日志中,支持事务回滚。语法为:
DELETE FROM 表名称 WHERE 列名称 = 值;
例如删除student表中姓名为"张三丰"的记录:
DELETE FROM student WHERE name='张三丰';
特点:仅删除数据,保留表结构;可删除部分记录;删除速度较慢,但安全性高(支持日志回滚)。
DROP语句
用于删除整个表,包括表结构和所有数据,同时释放存储空间。执行后表将彻底消失,需重新创建才能使用。语法为:
DROP TABLE 表名称;
特点:删除表定义、数据、约束、索引等所有关联对象;依赖该表的存储过程或函数会变为无效状态;不可逆操作,需谨慎使用。
TRUNCATE语句
用于清空表中的所有数据,但保留表结构(如列定义、约束等)。与DROP不同,它仅删除数据并释放空间,不删除表本身。语法为:
TRUNCATE TABLE 表名称;
特点:比DELETE更快,因不记录单行删除日志,而是直接释放数据页;不可带WHERE条件,只能清空全表;属于DDL操作,执行后自动提交,无法回滚。
三者的核心区别
使用场景建议: