oracle中的date、datetime类型的区别_Oracle中delete from 语句与truncate语句的区别

Oracle中delete from 语句与truncate语句的区别:

1.delete....from....删除语句一定要加where条件,否则全表删除。但是可以使用rollback语句进行回退,delete支持闪回操作。

truncate table table_name; truncate 不可以回退。

原因:delete....from....where......属于DML语句。DML语句,可以回退。insert、update、delete等语句,都可以回退,进行事务操作。而truncate属于DDL数据定义语言,无法回退rollback,不支持闪回。

2.对于少量数据,使用delete删除效率高,因为是逐行删除。

对于海量数据,truncate效率高,因为truncate表分成两个过程,首先是drop table 丢弃整张表。然后再重新建立新表,只建表结构。

3.delete删除不会立即释放空间,只是换个地方存储表,换到UNDO表空间。而truncate 不会,truncate相当于永久删除。

4.delete....from ... where....删除表内某行,会产生碎片。truncate 是删除整张表表,不会产生碎片。

delete....from.....where....删除表中的内容,会产生碎片。表中有高水位线(High Water Mark)的时候,可以通过整理碎片的方法回收表内空间:

方法1. SQL> alter table table_name move;

方法2. 表的导入导出,先导出再重新导入。相当于建立一张新表。

a323fe335eb2c6a3a95f30f413a8dfb2.png

有一颗上进心和持之以恒的态度,才是能否成功的关键!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值