删除数据:

  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. System的两常用个静态方法

    package cn.learn; /* System类在java.lang.System,和操作系统有关 1.currentTimeMillis直接调用,是一个返回为long型的静态方法 常用来计算 ...

  2. 中标麒麟V6.0安装 mysql-5.7.26-linux-glibc2.12-x86_64.tar.gz

    在中标麒麟6.0上安装mysql, 1.先从官网(https://dev.mysql.com/downloads/mysql/5.7.html#downloads)下载 . 我的选择如上图. 2.下载 ...

  3. bfs(标记整个棋盘)

    1004 四子连棋 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 黄金 Gold       题目描述 Description 在一个4*4的棋盘上摆放了14颗棋子,其中有7颗白色 ...

  4. tornado ioloop current和instance的一些区别

    import tornado.ioloop # 此时_current没有instance print dir(tornado.ioloop.IOLoop._current) # 通过instance ...

  5. @RestController vs @Controller

    package com.example.demo.controller; import java.util.HashMap; import java.util.Map; import org.spri ...

  6. go语言从例子开始之Example39.使用函数自定义排序

    有时候我们想使用和集合的自然排序不同的方法对集合进行排序.例如,我们想按照字母的长度而不是首字母顺序对字符串排序.这里是一个 Go 自定义排序的例子. Example: package main im ...

  7. go语言从例子开始之Example34.速率限制

    速率限制(英) 是一个重要的控制服务资源利用和质量的途径.Go 通过 Go 协程.通道和打点器优美的支持了速率限制. Example: package main import "fmt&qu ...

  8. iview中表单重置无效

    <Form>组件的model属性必须与表单组件的v-model属性的绑定对象一致 <FormItem>的prop属性要与表单组件v-model绑定的对象的字段相对应 <F ...

  9. 牛客网NOIP赛前集训营-提高组(第七场)A-中国式家长 2

    题目描述 有一天,牛牛找到了一个叫<中国式家长>的游戏,游戏中需要靠"挖脑洞"来提升悟性. 挖脑洞在一个\(N\)行\(M\)列的地图上进行,一开始牛牛有\(K\)点行 ...

  10. CF 187D BRT Contract

    传送门 给了60分的nq暴力还是很资磁的!!! 基本上想的跟正解差不多了但是刚T2去了就没想细节QAQ 大概就是我们逆序求一下每一个点从0时刻开始走到终点需要用的时间f 我们需要找到它遇到的第一个红灯 ...