oracle删除语句的结果,oracle的删除语句

关于oracle里面delete,trancate,drop的区别和用法

delete:属于DML语句,删除数据库中指定条件的数据,相应语法:

DELETE table WHERE a = b;

执行该语句后,需要使用commit进行提交才能反映到数据库中

TRUNCATE:(不是trancate)属于DDL语句,快速的删除指定表的所有数据,

TRUNCATE在各种表上无论是大的还是小的都非常快,同其它DDL语句一样,都显示的有提交操作,因此,执行之后是无法进行回滚操作的。TRUNCATE将重新设置高水平线和所有的索引。在对整个表和索引进行完全浏览时,经过TRUNCATE操作后的表比Delete操作后的表要快得多。TRUNCATE不能触发任何Delete触发器。当表被清空后表和表的索引将重新设置成初始大小,而delete则不能。

语法:TRUNCATE TABLE 表名

DROP:属于DDL语句,作用是删除整个表、删除指定的用户、删除指定的存储空间等等

语法:

drop table table_name [cascade constraint]

drop user user_name [cascade]

drop tablespace tablespace_name including content and datafiles

怎样恢复oracle删除(delete)的数据

第一步,先应记住被删除的表中有多少记录 select count(*) from t1; 第二步,delete该表的数据 delete from t1; commnit; 第三步,获得当前scn select dbms_flashback.get_system_change_number from dual; 第四步,根据第三步返回的scn不停地尝试查询直到所有记录都存在为止。

select count(*) from t1 as of scn 10670000;--10670000为返回的scn 第五步,当第四步返回的值为所删除的记录数时执行 insert into t1 select * from t1 as of scn 10670000; commite; 到此数据恢复完毕!。

oracle删除数据语句怎么写

Oracle数据删除语句

--查看当前SCN数值

SELECT dbms_flashback.get_system_change_number from dual;

--Scn与时间的对应关系

SELECT to_char(sysdate,'yyyy-mm-dd hh24:mi:ss', to_char(DBMS_FLASHBACK.GET_SYSTEM_CHANGE_NUMBER) AS SCN from dual;

--通过时间flashback query数据

www.2cto.com

SELECT * FROM scott.test AS OF TIMESTAMP TO_TIMESTAMP('2013-11-17 10:25:17', 'YYYY-MM-DD HH:MI:SS');

--通过SCN 闪回数据

SELECT * FROM scott.test AS OF SCN 23565583;

--闪回表中误删除的数据

flashback table tablename to timestamp xxx

flashback table tablename to scn xxx

--闪回表前提条件

--该表需开启行移动功能,可在恢复之前打开再执行恢复

alter table test enable row movement;

详解Oracle DELETE和TRUNCATE 的区别

1.delete from后面可以写条件,truncate不可以。

2.delete from记录是一条条删的,所删除的每行记录都会进日志,而truncate一次性删掉整个页,因此日至里面只记录页释放,简言之,delete from更新日志,truncate基本不,所用的事务日志空间较少。

3.delete from删空表后,会保留一个空的页,truncate在表中不会留有任何页。

4.当使用行锁执行 DELETE 语句时,将锁定表中各行以便删除。truncate始终锁定表和页,而不是锁定各行。

5.如果有identity产生的自增id列,delete from后仍然从上次的数开始增加,即种子不变,而truncate后,种子会恢复初始。

6.truncate不会触发delete的触发器,因为truncate操作不记录各个行删除。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值