类别 | delete | truncate | drop |
---|---|---|---|
语言 | DML | DDL | DDL |
删除方式 | 主要用于删除部分数据(某行) | 删除内容、释放空间 但不删除定义(保留表的数据结构) | 删除一切,释放空间 |
事务 | 可以使用rollback语句回滚 | 不能rollback回滚 | 不能rollback回滚 |
触发器 | 可以触发triggers | 无法触发triggers | 无法触发triggers |
效率 | 最低,因为是逻辑删除且逐行删除 | 高于delete,对整表删除 | 最高,直接全部删除(包括 索引,内容,结构,定义) |
场景:
当你不再需要该表时, 用 drop;
当你仍要保留该表,但要删除所有记录时, 用 truncate;
当你要删除部分记录时, 用 delete。
DDL和DML的定义和区别:
DML(Data Manipulation Language)数据操作语言:
适用范围:对数据库中的数据进行一些简单操作,如insert,delete,update,select等.
DDL(Data Definition Language)数据定义语言:
适用范围:对数据库中的某些对象(例如,database,table)进行管理,如Create,Alter和Drop.
区别:
1.DML操作是可以手动控制事务的开启、提交和回滚的。
2.DDL操作是隐性提交的,不能rollback!