数据库几种表删除方式
drop语法:drop table 表名称删除内容和定义,删除的是整个表(结构和数据),将表所占用的空间全释放掉。无法回滚,所以删除是不能恢复的,如果再次使用的话需要新建表。truncatetruncate table 表名称只是清空表,删除内容,释放空间,但不删除定义(保留表的数据结构)。且不会把删除操作记录记入日志保存,无法回滚,所以删除是不能恢复的。并且在删除的过程中不会激活与表有关的删除触
·
drop
语法:
drop table 表名称
删除内容和定义,删除的是整个表(结构和数据),将表所占用的空间全释放掉。无法回滚,所以删除是不能恢复的,如果再次使用的话需要新建表。
truncate
truncate table 表名称
只是清空表,删除内容,释放空间,但不删除定义(保留表的数据结构)。且不会把删除操作记录记入日志保存,无法回滚,所以删除是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器。执行速度快。
delete
delete from 表名称 where 列名称 = 值
删除表中的行,不删除表的结构。执行删除的过程是每次从表中删除一行,并且将该行的删除操作作为事务在日志中保存,以便进行进行回滚操作。delete会根据指定的条件删除表中满足条件的数据,where就是条件判断。如果不指定where子句,那么删除表中所有记录。
delete操作不会减少表或索引所占用的空间。
对比:
- drop是DDL语句,删除表结构及所有数据,同时删除表的结构所依赖的约束,触发器,索引;
- truncate也是DDL语句,删除的是表中全部的数据,不能选择删除部分数据,不删除表结构;
- delete是DML语句,可以选择删除部分数据,也可以删除全部数据;
- drop,truncate和不带where子句的delete都会删除表内的数据;
- drop,truncate都是DDL语句,执行后会自动提交;
- 在执行速度上,drop > truncate > delete;
- 在使用drop和truncate时要格外谨慎,虽然可以恢复,但会比delete删除麻烦很多。
更多推荐




所有评论(0)