删除数据:

  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. 排序,其他的运用 os fork

    while True: str_num = input("Enter number:") flag = True dotCount = 0 if str_num[0] == '-' ...

  2. django的orm操作优化

    django的orm操作优化 models.py from django.db import models class Author(models.Model): name = models.Char ...

  3. 搭建阿里云服务器(centos,jdk和Tomcat版本)

    1.购买服务器(登录阿里云,购买服务器,并进入控制台,查看自己的服务器实例 2.域名注册(这步可以省略,直接IP地址访问,因为域名需要备案),购买域名的需要进行解析以及绑定自己的服务器 3.可以准备一 ...

  4. presentingViewController、presentedViewController区别

    解释两个属性:presentingViewController 和 presentedViewController A----(present)-----B----(present)-----C 1. ...

  5. CAS无锁策略

    并发编程时,对于共享资源的使用需要确保绝对的安全性.除了利用锁机制之外,还有一种无锁的概念.所谓无锁,就是假定在并发情况下,对于共享资源的访问没有冲突,线程可以一直不停的运行,无需阻塞,如果产生冲突, ...

  6. 2018-8-10-win10-UWP-序列化

    title author date CreateTime categories win10 UWP 序列化 lindexi 2018-08-10 19:16:50 +0800 2018-2-13 17 ...

  7. kafka2.3集群搭建

    环境: 3台centos7.4 3台zookeeper3.4.14 1. wget http://mirror.bit.edu.cn/apache/kafka/2.3.0/kafka_2.11-2.3 ...

  8. 开源安全:PE分析

    https://github.com/JusticeRage/Manalyze.git https://github.com/JusticeRage/Manalyze https://www.free ...

  9. java23种设计模式(五)--组合模式

    转载:https://www.cnblogs.com/V1haoge/p/6489827.html定义:所谓组合模式,其实说的是对象包含对象的问题,通过组合的方式(在对象内部引用对象)来进行布局,我认 ...

  10. 亲测可用的golang sql例程与包管理

    sqlite与golang package main import ( "database/sql" "fmt" "time" _ &quo ...