数据表的删除比较简单,表删除后其占用的空间就被系统释放和回收,表的删除是无法回滚的操作。可删除的内容包括。
表的定义 表中的数据
表中的索引 表中的约束条件
表上的触发器 表中的权限
在【企业治理器】里删除表
(1)如图7.35所示。
(2)出现如图7.36所示界面。
(图片较大,请拉动滚动条观看)
(3)对应上述删除数据表Director的SQL代码为如下。
―――――――――――――――――――――――――――――――――――――
DROP TABLE SCOTT.DIRECTOR CASCADE CONSTRAINTS;
―――――――――――――――――――――――――――――――――――――
【参见光盘文件】:\第7章\ dropdirector.sql。
(4)在【SQLPlus Worksheet】中执行dropdirector.sql的结果如图7.37所示。
截断和删除的比较
TRUNCATE对所有的表的操作速度都很快,DELETE操作由于要产生大量的回滚信息,所以假如表很大,则删除速度较慢。
TRUNCATE是DDL语言(数据定义语言),隐含了提交操作,因此不能回滚。
TRUNCATE在表上或者在所有的索引中重新设置阈值,由于全部扫描操作和索引全表的快速操作将读所有未超过阈值的数据块,因此DELETE操作以后全表扫描的性能不会改进,但TRUNCATE操作以后全表扫描速度将加快。
截断表时,表和所有索引的存储参数可以设置为初始值,但DELETE操作不能缩小一个表及索引的大小。
截断操作不能删除完整性约束条件,而DELETE操作可以删除。