oracle008:oracle自增,自适应,数据闪回,导入导出
oracle008:oracle自增,自适应,数据闪回,导入导出
一,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,为了测试,先删除表中类容
查看表中类容发现导入了数据:
oracle008:oracle自增,自适应,数据闪回,导入导出相关教程