oracle008:oracle自增,自适应,数据闪回,导入导出

本文围绕Oracle数据库展开,介绍了数据自增的实现方法,即通过触发器实现主键自增;还阐述了自适应存储过程的定义与测试。同时,讲解了数据闪回、表闪回的操作及相关原理,对比了ddl和dml语言、Truncate和delete的区别,最后介绍了das命令的导入导出操作。

一,oracle数据自增
在MySQL中自增使用主键和自增来实现,但是oracle中没有自增,oracle使用触发器,在用户执行之前先执行,实现主键自增。
定义一个oracle主键自增的触发器:
1,先定义一个teacher表

create table teachers(
   tid number primary key,
   tname varchar(20)
   )

2,写触发器实现主键自增
对于这种错误:去掉 of sid就好了
Seq_s.currval :获取当前序列序列号
Seq_s.Nextval : 获取下一个序列号
在这里插入图片描述
在这里插入图片描述
3,测试:
在这里插入图片描述
从41自增是因为之前用过这个触发器

select seq_s.nextval from dual;

二,自适应:当不知道需要一个什么类型的时候,就把他定义成一个自定义类型,让它去自适应。
1,定义自适应的存储过程:
在这里插入图片描述
2,测试,执行存储过程
在这里插入图片描述
三,数据闪回:
1,数据闪回:在oracle中删除了表中的数据,记得不要commit,要rollback。万一commit了除了跑路,还有数据闪回可以挽回损失,找回删除的数据。
比如:把teachers表中的数据删除了(于2019-5-27:00:32删除)
在这里插入图片描述
2,找到数据存在之前的时间点,查找那个时间点上的数据(注意:只能闪回你上一步删除的数据,我把teachers删除了之后,又把emp表给删除了,所以只能闪回emp,不能闪回teacheras)
查找时间点:

select to_timestamp('2019-05-27:00:32','yyyy-MM-DD hh24:MI') from dual;

3,查找时间点上的数据:

select * from emp as of timestamp to_timestamp('2019-5-27 00:32:00','YYYY-MM-DD hh24:MI:SS')

4,把那个时间点上的数据添加到原表中

insert into emp
select * from emp as of timestamp to_timestamp('2019-5-27 00:32:00','YYYY-MM-DD hh24:MI:SS')

然后再查找emp,发现数据回来了,teachers算他倒霉,被我找不回来了。
四,表闪回:
如果把表删除了,你可不能rollback,对表的操作是ddl语言,操作后不会进入回滚区。我们发现用数据闪回实现不了表的闪回。
1,把emp表给删了
在这里插入图片描述
2,查看所有表:发现emp表变成了一个地址,这个表进入到了垃圾回收站,显示的就是垃圾的地址。

select * from tab;

在这里插入图片描述
3,从垃圾站闪回emp表

flashback table emp to before drop

4,设置开启行移动功能

alter table emp enable row movement

5,闪回某一时刻上的表

flashback table emp to timestamp to_timestamp('2019-05-26 10:30:00','YYYY-MM-DD hh24:MI:SS')
  • ddl语言和dml语言的区别:
    Ddl:数据定义 语言(操作表结构) create – drop-- alter --modify,数据不会进入回滚段,是直接操作
    Dml:数据操作语言(操作表数据) insert-- delete-- update-- select,数据先进入回滚段,commit就直接操作,rollback就又回到操作之前的状态
  • Truncate和delete的区别
    1:Truncate截断表,先删后建,delete是直接删空表数据
    2:Truncate删除之后id从1开始,delete删除之后接着最大值开始
    3:Truncate是ddl语言,delete是dml语言,Truncate不记录到回滚段,delete是先把数据存入回滚段
    4:Truncate速度快与delete
  • 对垃圾站的操作:
    1,从回收站闪回表
flashback table 表名 to before drop

2,彻底删除回收站里的某一个表

purge table 表名

3,清空回收站

purge recyclebin

五,导入和导出:
把数据导出,换工作环境,然后导入,继续工作。在软件上自带导入导出,我们学习das命令的导入导出(oracle导入导出的是用户)
1,导出数据(exp):
创建用户,创建表,给用户的表里面添加数据:
在这里插入图片描述
在dos窗口导出这个用户yangyang/yangyang
在这里插入图片描述
在d盘看到导出的文件
在这里插入图片描述
2,导入:imp,为了测试,先删除表中类容
在这里插入图片描述
查看表中类容发现导入了数据:
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值