1.delete from 表名:删除所有数据,表结构还在,写日志,可以恢复,速度慢
delete可以通过日志恢复:
(1) SQL>select * from emp;
(2) SQL> savepoint a; --保存断点(删除之前先保存)
(3) SQL> delete from emp; --删除
(4) SQL> select * from emp; --查看
(5) SQL> rollback to a; --回滚到断点
2.drop table 表名:删除表的结构和数据
drop可以通过闪回恢复
(1) select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
EMP TABLE
BIN$Rqot1EhjR6CCexnfYwUXpg==$0 TABLE
(2) drop table EMP;
Table dropped
(3) 再次查询 select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
BIN$Z4xGtH0VQnuYtNtWmqzktg==$0 TABLE
BIN$Rqot1EhjR6CCexnfYwUXpg==$0 TABLE
说明没有被删除;
(4) show recyclebin;
(5) flashback table EMP to before drop; --恢复语句
(6) 再次查看 select * from tab;
TNAME TABTYPE CLUSTERID
------------------------------ ------- ----------
EMP TABLE ---已恢复
BIN$Rqot1EhjR6CCexnfYwUXpg==$0 TABLE
3.truncate table 表名:删除表中的所有记录,表结构还在。不写日志,无法恢复,但速度快