SQL删除语句drop,delete与truncate的区别
相同点:
drop、truncate和不带where子句的delete,都会删除表内的数据
不同点:
- truncate会清除表数据并重置id从1开始,delete就只删除记录,drop可以用来删除表或数据库并且将表所占用的空间全部释放
- truncate和delete只删除数据不删除表的结构。drop语句将删除表的结构。
- 速度上一般来说: drop> truncate > delete
- 使用上
- delete是DML语句,不会自动提交。drop/truncate都是DDL语句,执行后会自动提交。
总结
想删除部分数据行用 delete
想删除表用 drop
想保留表而将所有数据删除,如果和事务无关,用truncate即可,如果和事务有关还是用delete。