初识Oracle day13(事务、锁相关的知识)

本文深入解析事务的四大特性:原子性、一致性、隔离性和持久性,详述事务提交的三种方式,探讨事务回滚的命令及作用,并通过SQL场景演示回滚点的应用,最后解析两种锁机制与三种锁类型的原理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1-事务的四个特性是什么?分别解释…
(1)原子性(Atomic)
代表事务是一个整体的工作单元,要把事务当做一个整体来看,要么整体执行,要么整体取消
(2)一致性(ConDemoltent)
事务在完成的时候,必须要使所有的数据都保持一致的状态
(3)隔离性(Isolated)
不同事务之间的修改是隔离着的,事务不会查看中间状态的数据。
(4)持久性(Durability)
事务提交之后对数据库的修改将永久的保存下来了。
2-事务的提交有那三种方式?分别说明…
提交事务是指把对数据库进行的全部操作持久性地保存到数据库中,这种操作通常使用COMMIT语句来完成。
事务的提交方式包括如下3种:
显式提交:使用commit命令使当前事务生效。
自动提交:在SQL *Plus里执行“set autocommit on;”命令。
隐式提交:除了显式提交之外的提交,如发出DDL命令、程序中止和关闭数据库等。
3-事务回滚命令是什么?有什么作用?
回滚事务的命令:rollback;
回退事务是指撤销对数据库进行的全部操作,Oracle利用回退段来存储修改前的数据,通过重做日志来记录对数据所做的修改。如果要回退整个事务,Oracle系统内部将会执行如下操作过程。
(1)首先使用回退段中的数据撤销对数据库所做的修改。
(2)然后Oracle后台服务进程释放掉事务所使用的系统资源。
(3)最后显示通知,告诉用户事务回退成功。
4-回滚点的作用?请用完整的sql场景来解释…设置2个回滚点…
回滚点的作用:
回退点又称为保存点,即指在含有较多SQL语句的事务中间设定的回滚标记,其作用类似于调试程序的中断点。利用保存点可以将事务划分成若干小部分,这样就不必回滚整个事务,可以回滚到指定的保存点,有更大的灵活性。

--查询表里面的数据
select *from dept;
savepoint sp1; --设置保存点sp1
insert into dept values(50,'宣传表','合肥');--插入一条记录
savapoint sp2;  --设置保存点sq1
delete from dept where deptno=60; --删除一条记录
select *from dept; --查看表
rollback to sp2; 回滚到保存点sp2
select *from dept;

在这里插入图片描述
进行回滚保存点的操作,如下操作将把数据恢复到sp2保存点的时候:
在这里插入图片描述

5-哪两种锁机制?分别解释…
在Oracle中,提供了两种锁机制。
(1)共享锁(share lock)。共享锁通过数据存取的高并行性来实现。如果获得了一个共享锁,那么用户就可以共享相同的资源。许多事务可以获得相同资源上的共享锁。例如,多个用户可以在相同的时间读取相同的数据。
(2)独占锁(exclusive lock)。独占锁防止共同改变相同的资源。假如一个事务获得了某一资源上的一个专用锁,那么直到该锁被解锁,其它的事务才能修改该资源,但允许对资源进行共享。例如,假如一个表被锁定在独占模式下,它并组织其它用户从同一个表得到数据。
6-哪三种锁的类型?分别解释…
锁的类型
DML锁:防止两个事务对同一行的同时修改,保护并行事务的完整性。
DDL锁 :保护方案对象的定义,调用一个DDL语句就会隐式的提交事务,Oracle自动获得。
内部锁:内部数据库,内部数据结构,它们都是不可访问的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值