删除数据:

  delete:用delete删除记录,Oracle系统会产生回滚记录,所以这种操作可以使用ROLLBACK来撤销

  truncate:删除数据时,不会产生回滚记录。所以执行速度相对较快些

可以reuse storage(保留记录所占用的空间)  drop storage(立即回收记录占用的)

事务处理

  事务是由一系列语句构成的逻辑工作单元。事务的重要属性:

A-Atomic:原子性,事务对数据库所做的操作要么全部执行,要么全部取消。

C-Consistency:一致性,事务完成时,必须使所有的数据都保持一致状态。

I-Isolated:隔离性,事务查看数据所处的状态,要么是另一并发事务修改它之前的状态,要么是另一事务修改它之后的状态,事务不会查看中间状态的数据。

D-Durability:持久性,当事务提交后,对数据库所做的修改就会永久保存下来。

操作事务:Oracle 11g的事务是隐式自动开始的,它不需要用户显示地执行开始事务语句。但对于事务的结束处理,则需要用户进行指定的操作,通常在以下情况下,Oracle认为一个事务结束了。

1.执行COMMIT

2.执行ROLLBACK

3.执行一条数据定义语句,CREATE,DROP ALTER,如果执行成功,系统要么COMMIT,要么ROLLBACK

4.执行一个数据控制命令,GRANT REVOKE,这种操作执行完毕。系统自动执行COMMIT

5.正常地断开数据库的连接,正常地退出SQL *Plus环境。系统自动执行COMMIT;否则系统自动执行ROLLBACK

综合来看,Oracle结束一个事务归根结底要么执行COMMIT,要么执行ROLLBACK

a--提交事务(COMMIT)

  Oracle系统会按照如下顺序进行处理:

1.在回滚段内记录当前事务已提交,并且声明一个系统编号(SCN),以唯一标识这个事务

2.启动后台的日志写入进程(LGWR),将SGA区中的重做日志缓冲区的数据和当前事务的SCN写入重做日志文件中。

3.Oracle服务器开始释放事务处理所使用的系统资源

4.显示通知,告诉用户事务已经成功提交

b--回滚事务(ROLLBACK)

  回滚整个事务,Oracle系统内部将执行以下操作过程:

1.使用回滚段中的数据撤销对数据库所做的修改

2.Oracle后台服务进程释放掉事务所使用系统资源

3.显示通知,告诉用户回滚成功

  可以回滚到部分, 可以使用(savepoint sp);来设置断点

Oracle -操作数据库的更多相关文章

  1. ADO.NET和ORACLE操作数据库传参数赋值的方式

    在使用.Net使用OracleParameter进行Oracle数据库操作的时候,因为Oracle和SQLServer针对查询参数化的语法不同, 在操作SQLServer的时候使用的是@Paramet ...

  2. Oracle 操作数据库(增删改语句)

    对数据库的操作除了查询,还包括插入.更新和删除等数据操作.后3种数据操作使用的 SQL 语言也称为数据操纵语言(DML). 一.插入数据(insert 语句) 插入数据就是将数据记录添加到已经存在的数 ...

  3. Oracle操作数据库oracleHelper

    1 Oracle OracleHelper //============================================================================ ...

  4. 吴裕雄 python oracle操作数据库(4)

    import cx_Oracle conn = cx_Oracle.connect("scott/admin@localhost:1521/orcl")cursor = conn. ...

  5. JDBC(用Eclipse操作数据库Oracle)的基础操作集合

    JDBC: JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编 ...

  6. 非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等

    可同时操作多个不同类型的数据库. 完全不用考虑数据类型的差别,再也不用想字符型字段加不加单引号. 调用非常简单,对数据库的主要操作一般只需要一行代码. 支持mssql事务回滚. 可自动生成和输出sql ...

  7. Oracle 10g数据库备份与恢复操作手册

    Oracle 10g数据库备份与恢复操作手册 目录 Oracle 10g数据库备份与恢复操作手册... 前言... 文档目的... 文档范围... 目标读者... 其他说明... 冷备份... 热备份 ...

  8. Oracle相关数据库操作

    1.进入oracle后台操作 su - oracle 2.数据库备份的指定位置 Oracle用sys用户登录查询数据库 select * from dba_directories a where a. ...

  9. 菜鸡之NetCore 使用EF操作数据库 Oracle & Sqlserver (一)

    摘要: 该篇文章主要记录netCore EFCore 如何操作Oracle和SqlServer 数据库,采用Codefirst方式创建数据库以及表. 一, 项目建立 项目采用DDD领域驱动设计模式[学 ...

随机推荐

  1. centOS7挂在windows移动硬盘方法

    1,http://www.tuxera.com/community/open-source-ntfs-3g/ 下载ntfs-3g_ntfsprogs-2016.2.22这个压缩包,可用wget和浏览器 ...

  2. canvas添加事件

    https://blog.csdn.net/xundh/article/details/78722744

  3. python学习第二天标准输入输出和注释用法

    任何编程语言都有输入输出和用打交道,python也不例外,输入input(),输出print() 玖乐网络(http://www.96net.com.cn/)分享自己的心得 1,input()用法实例 ...

  4. Mybatis-技术专区-中的条件查询createCriteria example里面的条件

    之前用Mybatis框架反向的实体,还有实体里面的Example,之前只是知道Example里面放的是条件查询的方法,可以一直不知道怎么用,到今天才开始知道怎么简单的用. 在我们前台查询的时候会有许多 ...

  5. Source Insight symbol not found

    使用SourceInsight查看源代码时,发现点击查看相关类型时,无法关联到其代码,出现 symbol not found, 然而明明在我的头文件有定义的 网上查了一下主要是因为新建工程导入文件后, ...

  6. Identity MVC:UI

    基于原来做的cookie认证的代码:MvcCookieAuthSample 增加登陆和退出的方法: 增加Login和SignIn这两个Action方法. 在Views下面创建Account文件夹,然后 ...

  7. Django学习记录--~Biubiubiu

    Day One Django常用命令 1.创建Django网站框架 django-admin startproject mysite # mysite为定义的项目文件夹名称 2.超级用户创建 py m ...

  8. vue项目一个页面使用多个轮播图详解

    1.html代码: <div v-for="(item,index) in arrDataList.Floor"> // 根据后台数据循环渲染多个轮播图组件 <d ...

  9. 屏蔽命令任何输出的:>/dev/null 2>&1

  10. tensorflow教程:tf.contrib.rnn.DropoutWrapper

    tf.contrib.rnn.DropoutWrapper Defined in tensorflow/python/ops/rnn_cell_impl.py. def __init__(self, ...