知识点记录(三)——drop,truncate和delete的区别
SQL中用于删除的关键词有drop,truncate与delete。
关于功能
DELETE语句执行删除的过程是每次从表中删除一行,并且同时将该行的删除操作作为事务记录在日志中保存以便进行进行回滚操作。
TRUNCATE TABLE 则一次性地从表中删除所有的数据并不把单独的删除操作记录记入日志保存,删除行是不能恢复的。并且在删除的过程中不会激活与表有关的删除触发器,执行速度快。
DROP用于删除整个表
关于储存空间
当表被TRUNCATE 后,这个表和索引所占用的空间会恢复到初始大小;
DELETE操作不会减少表或索引所占用的空间;
DROP语句将表所占用的空间全释放掉。
关于应用范围
TRUNCATE 只能对TABLE;
DELETE可以是table和view
TRUNCATE 和DELETE只删除数据, DROP则删除整个表(结构和数据)。
关于速度
DROP > TRUNCATE > DELETE