Oracle基础 事务

一、事务

  事务就是业务上的一个逻辑单元,它能够保证其中对数据所有的操作,要么全部成功,要么全部失败。

二、事务的特性:

  1、原子性:事务是SQL中的最小执行单位,不能再进行分割。

  2、一致性:SQL语句要么全部执行,要么全部不执行。

  3、隔离性:事务之间是相互隔离的,多个事务不会相互影响。

  4、持久性:当事务提交后,数据则永久有效。

三、事务控制语句:

  1、COMMIT:提交事务,对数据库的修改进行保存。

  2、ROLLBACK:回滚事务,取消对数据库所做的修改。

  3、SAVEPOINT:在事务中创建存储点。

  4、ROLLBACK TO <SAVEPOINT>:将事务回滚到存储点。

  5、SET TRANSACTION:设置事务的属性。

四、使用事务的步骤:

  1、开启事务。在Oracle中,事务是在上一次事务结束以后,数据“第一次”被修改时自动开启。

  2、进行(多次)数据操作(增、删、改)。

  3、结束事务:事务结束有两种情况.

    (1)事务被提交:

      a.发出COMMIT命令。

      b.执行DDL语句。输入DDL语句后当前事务自动被提交。

      c.与Oracle分离,或退出PL/SQL Developer。

    (2)数据被撤销:

      a.发出ROOLBACK命令.

      b.服务器进程异常结束。

      c.DBA停止会话。

  

  例:操作dept表:  

INSERT INTO dept VALUES(50,‘a‘,NULL);      --插入两条记录
INSERT INTO dept VALUES(60,‘b‘,NULL);
SAVEPOINT a;                                --设置保存点
INSERT INTO dept VALUES(70,‘c‘,NULL);      --插入新的数据
ROLLBACK TO SAVEPOINT a;                   --回到保存点a,则保存点后的SQL语句失效。
select * FROM dept;                         --插入c的值没有了。
ROLLBACK;                                   --回滚事务,插入的a和b的值也没有了。
SELECT * FROM dept;
时间: 2024-10-09 01:10:19

Oracle基础 事务的相关文章

蜗牛—ORACLE基础之事务学习(五)

---------------事务---当执行到commit时 事务才算是完成,不然 会执行rollback操作. declare v_money acount.money%type:=1223; ex exception; begin update acount set money=money-v_money where id=1; raise ex; update acount set money=money+v_money where id=2; commit; exception whe

Oracle基础 shutdown和startup

原文:Oracle基础 shutdown和startup 一.shutdown命令:SHUTDOWN有四个参数:NORMAL.TRANSACTIONAL.IMMEDIATE.ABORT.缺省不带任何参数时表示是NORMAL. SHUTDOWN NORMAL:不允许新的连接.等待会话结束.等待事务结束.做一个检查点并关闭数据文件.启动时不需要实例恢复. SHUTDOWN TRANSACTIONAL:不允许新的连接.不等待会话结束.等待事务结束.做一个检查点并关闭数据文件.启动时不需要实例恢复. S

Oracle基础 数据库备份和恢复

原文:Oracle基础 数据库备份和恢复 一.为什么需要数据备份 造成数据丢失的主要原因: 1.介质故障. 2.用户的错误操作. 3.服务器的彻底崩溃. 4.计算机病毒. 5.不可预料的因素. Oracle中故障类型分为以下4种. 1.语句故障: 执行SQL语句过程发生的逻辑故障可导致语句故障.如果用户编写的SQL语句无效,就会发生语句故障.Oracle可自我修复语句故障,撤销语句产生的而印象,并将控制权交给应用程序. 2.用户进程故障 当用户程序出错而无法访问Oracle数据库时,就会发生用户

Oracle core05_事务和一致性

事务和一致性 oracle的redo和undo机制保证了数据库的ACID特性,以及高性能和可恢复特性. redo的数据是记录着数据块变更的顺序的正向数据流, commit时,保证redo同步持久化,保证高性能. 恢复的时候,顺序的应用日志. redo的机制相对比较简单. undo记录着数据块的前映像. 保证事务的特性,数据只有在commit后才可见. 提供读一致性,保证读写互不阻塞. 一方面,在undo segment header中transaction table中记录着事务,并在undo的

oracle数据库事务相关【weber出品必属精品】

事务的概念:事务:一个事务由一组构成一个逻辑操作的DML语句组成 事务有开始有结束,事务以DML语句开始,以Conmmit和Rollback结束.以下情况会使得事务结束: 1. 执行COMMIT 或者 ROLLBACK 语句 2. 执行DDL或者 DCL语句 3. 用户退出 4. 系统崩溃 一个事务可以包含下列语句: 1. 对数据做出一致性修改的DML语句 2. 一个 DDL 语句 3. 一个 DCL语句 DDL与和DCL语句执行的过程: 1. 首先发出COMMIT; 2. 执行对数据字典的DM

【转载:Oracle基础知识】Oracle数据库体系结构

先来看张直观的图:                                            oracle 11g 体系结构图 理解Oracle体系结构要充分理解三个概念:数据库(database),数据库实例(instance),会话(session),一定不要把这三个概念弄混. 数据库的概念 (A)    物理存储结构由数据文件.控制文件.重做日志文件组成: 1.       数据文件(datafile) select * from dba_data_files; 数据文件包括存

Oracle 基于事务的临时表在11g和12C下的区别

Oracle 基于事务的临时表在11g和12C下的区别下,可以看到收集临时表的统计信息后,前者记录被清空,后者没有,这是个很重要的区别.在公司环境上用的是12C,在现场用的是11g,使用临时表会造成时快时慢,之前我有帖子http://blog.csdn.net/stevendbaguo/article/details/39964807,用了hint之后,也不是特别好,于是直接采集,结果临时表被清空.解决的方法是:建基于session的临时表,且每次用完之后要truncate,要不然,会有问题.

Oracle基础实训

一.Oracle基础SQL练习 班级表:班级编号(主键.标识列).班级名称.班主任.开班日期老师表:老师编号(主键.标识列) .姓名.性别(默认值‘男’).身份证号(必须是18位数字).联系电话学生表:学号(主键.固定五位数字) .班级编号.姓名.性别.出生日期.联系电话.家庭地址成绩表:编号(主键.标识列) .学号.科目名称.分数 1.表格创建 create table();语法 CREATE TABLE [schema.]table (column datatype [DEFAULT exp

oracle ITL(事务槽)的理解

一.ITL描述: ITL(Interested Transaction List)是Oracle数据块内部的一个组成部分,位于数据块头(block header),itl由xid,uba,flag,lck和scn/fsc组成,用来记录该块所有发生的事务,一个itl可以看作是一条事务记录.当然,如果这个事务已经提交,那么这个itl的位置就可以被反复使用了,因为itl类似记录,所以,有的时候也叫itl槽位.如果一个事务一直没有提交,那么,这个事务将一直占用一个itl槽位,itl里面记录了事务信息,回