我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle_事务控制语句

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle_事务控制语句

事务是对数据库操作的逻辑单位,在一个事务中可以包含一条或多条DML (数据操纵语言)、DDL (数据定义语言)和DCL (数据控制语言)语句,这些语句组成一个逻辑整体。

事务的执行只有两种结果:要么全部执行,把数据库带入一个新的状态,要么全部不执行,对数据库不做任何修改。
对事务的操作有两个:提交( COMMIT )和回滚( ROLLBACK )。

提交事务时,对数据库所做的修改便永久写入数据库。
回滚事务时,对数据库所做的修改全部撤销,数据库恢复到操作前的状态。
事务可用于操作数据库的任何场合,包括应用程序、存储过程、触发器等。

事务具有四个属性,这四个属性的英文单词首字母合在一起就是ACID 。

这四个属性是:
·原子性( Atomicity ):事务要么全部执行,要么全部不执行,不允许部分执行。
·一致性( Consistency ):事务把数据库从一个一致状态带入另一个一致状态。
·独立性( Isolation ):一个事务的执行不受其他事务的影响。
·持续性( Durability ):一旦事务提交,就永久有效,不受关机等情况的影响。
一个事务中可以包含多条DML语句,或者包含一条DDL语句,或者包含一条DCL语句。

事务开始于第一条SQL语句,在下列之一情况下结束:
·遇到COMMIT或ROLLBACK 命令。
·遇到一条DDL或者DCL命令。
·系统发生错误、退出或者崩溃。
总之,事务是一系列可以把系统带入一个新的状态的操作,如果事务被提交,则数据库进入一个新的状态,否则数据库恢复到事务以前的状态。
在数据库中使用事务的好处是首先可以确保数据的一致性,其次在对数据做永久修改之前可以预览以前的数据改变,还可以将逻辑上相关的操作进行分组。
控制事务的方式有两种,一种是隐式控制,数据库管理系统根据实际情况决定提交事务还是回滚事务;下载地址   springmvc整合mybatis框架源码 
另一种方式是显式控制,在事务的最后放置一条COMMIT或ROLLBACK命令,将事务提交或回滚。
如果是隐式控制,那么事务在遇到一条DDL命令,如CREATE ,或者遇到一条DCL 命令,如GRANT ,或者从SQL *Plus正常退出,即使没有发出COMMIT或ROLLBACK命令,这个事务将被自动提交。
如果从SQL*Plus非正常退出或发生系统崩溃,那么系统将自动回滚事务。
如果是显式控制,那么在事务的最后就要通过COMMIT命令提交事务,或者通过一条ROLLBACK命令回滚事务。

如果事务被提交,那么对数据库所作的修改将写人数据库。

如果回滚事务,一般情况下将回滚到事务的开始,即对数据库不做任何修改。
在Oracle 中,允许部分回滚事务,即可以将事务有选择地回滚到中间的某个点。
部分回滚是通过设置保存点( SAVEPOINT )来实现的。

事务中可以通过SAVEPOINT命令设置若干个保存点,这样可以将事务有选择地回滚到某一个保存点。

用户访问数据库时,数据库中的数据是放在缓冲区中的,当前用户可以通过查询操作,浏览对数据操作的结果。
如果没有提交事务,其他用户是看不到事务的修改结果的。

当一个用户修改表中的数据时,将对被修改的数据加锁,其他用户无法在此期间对该行数据进行修改,直到这个用户提交或回攘这个事务。
如果在事务的最后执行了COMMIT命令,则对数据的修改将被写入数据库,以前的数据将永久丢失,无法恢复,其他用户都可以浏览修改后的结果,在数据上加的锁被释放,其他用户可以对数据执行新的修改,在事务中设置的所有保存点将被删除

如果在事务中设置了保存点,并且在事务的最后执行ROLLBACK命令回滚到某个保存点,那么在此保存点之后的DML语句所做的修改将被丢弃,但是在此保存点之前的DML语句所做的修改仍然没有写入数据库,还可以进行提交或回滚。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle_事务控制语句

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

流程控制语句

JavaScript 运算符与流程控制语句 运算符 1、赋值运算符:=、+=、-=、*=、/=、%= 2、算术运算符:+、-、*、/、%、++、-- 3、字符串运算符:+、+= 4、比较运算符:==、!=、、>= 5、逻辑运算符:&&、|
2023-06-03

Python - if语句控制

if else逻辑值包含了两个值Ture: 表示非空的量(string,tuple,list,set,dictionary),所有非零数。Flase: 表示0,None,空的量。elif语句if expression1:    statem
2023-01-31

Python流程控制语句

注意: 在 Python 中,非零值表示 True;None 和 0 表示 False。if 语句if…else 语句if…elif…else 语句嵌套 if 语句可以将一个 if … elif … else 语句加入至另一个 if … e
2023-01-31

Python3 流程控制语句

Python3 流程控制语句python3 的流程控制语句包括:if 条件语句while循环语句for 循环语句range函数breakcontinuepass一、if语句if语句是python中最常用的条件控制语句,其格式为:if 条件一
2023-01-31

MySQ权限控制语句

1.使用root账号登陆到MySQL服务器:mysql -u root -pmypass;2.切换到mysql数据库实例:use mysql;3.查看用户表:select host, user, password from user;4.创建一个只允许从本机登
MySQ权限控制语句
2021-01-27

python基础 - 控制语句

判断-ifmood = Trueif mood: print('mood ok');else: print('mood not OK')if-elif-elseif a == 1: passelif a == 2:
2023-01-30

004 python 流程控制语句

流程控制语句1.if判断语法a = 10,b = 20# 1if a == 10:  print('a等于10')# 2if a > b:  print('a大于b')else:  print('a小于b')# 3if a < b :  
2023-01-31

PHP流程控制语句一览

PHP中流程控制语句是编写程序时不可或缺的一部分,它可以控制程序的执行流程,根据不同的条件执行不同的代码块。本文将介绍PHP中常用的流程控制语句,包括if语句、switch语句、for循环、while循环和foreach循环,并提供具体的代
PHP流程控制语句一览
2024-03-09

编程热搜

目录