一、使用情况
在删除数据库中的数据时,常常会存在这样几种情况:
①已经确定删除整张表和数据,也不需要恢复数据了,用 drop;
②删除数据不删除表,但是删除之后还有可能会后悔,用 delete;
③只想删除数据,不用删除表,删除数据后不会后悔了,用 truncate;
执行速度:drop> truncate > delete
二、用法
① DROP TABLE 表名;
drop是直接将表格删除,无法找回。将删除表的结构被依赖的约束(constrain),触发器(trigger)索引(index);
② DELETE FROM 表名;
delete可以和where子句连用删除指定行;
delete的效果相当于一行行删除,所以可以rollback;
delete不会删除索引 (新插入的数据将在删除数据的索引后继续增加);
③ TRUNCATE TABLE 表名;
truncate 是删除表中所有数据,但不能与where一起使用;
truncate删除后不记录mysql日志,因此不可以rollback,更不可以恢复数据;
truncate 删除后将重建索引;
truncate 不会触发任何 DELETE触发器;