Oracle子查询及事务处理

 Oracle操作数据,使用子查询插入数据:

当时用values子句时,一次能插入一行数据,当时用子查询插入数据时,一条insert语句可以插入大量的数据,当处理迁移或者装在外部表的数据到数据库时,可以使用子查询来插入数据。

create table   wangibng  (myid  number(4),myname varchar2(50),mydeptno  number(5));

insert   into  wangbigng    (myid  ,myname ,mydeptno )   select   empno,ename,deptno  from  emp  where deptno=10;


使用子查询更新数据;

使用update更新数据时,既可以使用表达式或者数值直接修改数据,也可以使用子查询修改数据。

问题:  希望员工scott的岗位、工资、补助与smith一样?

update   emp  set  (job,sal,comm) = (select  job,sal,comm from  emp   where  ename = 'SMITH')  where  eanme ='scott';



事务:

事务用于保证数据一致性,它是由一组相关的dml语句组成,该组的dml语句【增删改语句】要么全部成功,要么全部失败。

事务和锁:

当执行事务操作时(dml语句),oracle会被作用的表上加锁,防止其他用户该表表的结构。【类似于java 的synchronized】



提交事务

当执行commit语句可以提交事务。当执行了commit语句之后,会确认事务的变化,结束事务,删除保存点,释放锁,当使用commit语句结束事务之后,其他会话将可以查到事务变化后的新数据。


回退事务:

一、savepoint   的概念和作用

保存点是一个事务中的一点,用于取消部分事务,当结束事务时,会自动的删除该事物所定义的所有保存点,当执行roolback时,通过指定保存点可以回退到指定的点。

savepoint  a2 ;

取消部分事务:rollback   to a2;

取消全部事务:  rollback


只读事务:

是只允许执行查询的操作,而不允许任何dml操作的事务,使用只读事务可以确保用户只能取得用户某时间点的数据。

设置只读事务:set   transaction   read  only;

【在system用户中设置只读事务,用scott 登录在emp表中插入数据,用system用户查看scott的emp表则插入的数据不会显示】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值