Oracle恢复删除数据 && connect by 树形结构查询
1、一个表中根据以父子级别关系查询显示出来(如图)
select t.* from department t CONNECT BY PRIOR t.depid=t.supdepid ; --这样也可以,但查出来的结果会有重复
select t.* from department t start with supdepid=0 CONNECT BY PRIOR t.depid=t.supdepid ;--这样就不会了
select t.* from department t start with supdepid=0 and t.depname like '%部%' CONNECT BY PRIOR t.depid=t.supdepid ; --加上其他条件查询
其中 connect by 是树形查询中的一个子句。
2、显示指定时间的数据库数据
如果你在之前误删了数据信息,但又没有备份,你只需加上要查找的条件,
执行下面的语句,就可以找回误删的信息了
--显示一个小时之前的表数据信息
select * from department as of timestamp sysdate-(1/(24));
--显示90分钟之前的表数据信息
select * from department as of timestamp (systimestamp - interval '90' minute)
先把查询删除之前的制定数据sql语句导出(不是所有的数据可以根据条件查询导出),然后再把这些语句在数据库中执行一遍即可
--锁定表格(锁定后,其他人修改表格就会是排队等待状态)
select * from emoloyee for update;