-区别- | -delete- | -truncate- | -drop- | -适用场景- |
---|---|---|---|---|
-类型及特点- | -DML,操作会放到rollback segement中,操作后还需提交事务才生效,可以回滚。如果有相应的trigger,执行时也将执行trigger。- | -DDL,操作不放到rollback segement中,操作后立即生效,不可回滚。不可执行trigger。- | -DDL,操作不放到rollback segement中,操作后立即生效,不可回滚。不可执行trigger。- | – |
-删除范围- | -删除表数据,不删除表结构。不删除空间。- | -删除表数据,不删除表结构。先删除再创建空间,恢复到初始的表空间。- | -删除表数据,删除表结构,以及constrain、index、trigger,且将依赖该表的所有存储过程和视图设置为invalid。删除空间。- | – |
-执行速度- | -慢,操作是逐行删除。- | -中,操作是先执行drop,再执行create。- | -快,操作只执行drop。- | – |
部分释义:
DML:Data Manipulation Language,数据操纵语句。操作对象是数据库记录,并检查数据完整性。包括记录的insert、delete、udpate、select等。
DDL:Data Definition Languages,数据定义语句。操作对象是数据段、数据库、表、列、索引等。包括: create、drop、alter等。
DCL:Data Control Language,数据控制语句。操作对象是数据段、数据库、表、字段、用户等。包括grant、revoke等。
rollback segement:回滚分段。
trigger:触发器。
constrain:依赖的约束。
index:索引。