Oracle -操作数据库
删除数据:
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 -操作数据库的更多相关文章
- ADO.NET和ORACLE操作数据库传参数赋值的方式
在使用.Net使用OracleParameter进行Oracle数据库操作的时候,因为Oracle和SQLServer针对查询参数化的语法不同, 在操作SQLServer的时候使用的是@Paramet ...
- Oracle 操作数据库(增删改语句)
对数据库的操作除了查询,还包括插入.更新和删除等数据操作.后3种数据操作使用的 SQL 语言也称为数据操纵语言(DML). 一.插入数据(insert 语句) 插入数据就是将数据记录添加到已经存在的数 ...
- Oracle操作数据库oracleHelper
1 Oracle OracleHelper //============================================================================ ...
- 吴裕雄 python oracle操作数据库(4)
import cx_Oracle conn = cx_Oracle.connect("scott/admin@localhost:1521/orcl")cursor = conn. ...
- JDBC(用Eclipse操作数据库Oracle)的基础操作集合
JDBC: JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编 ...
- 非常不错的ASP操作数据库类,支持多数据库MSSQL,ACCESS,ORACLE,MYSQL等
可同时操作多个不同类型的数据库. 完全不用考虑数据类型的差别,再也不用想字符型字段加不加单引号. 调用非常简单,对数据库的主要操作一般只需要一行代码. 支持mssql事务回滚. 可自动生成和输出sql ...
- Oracle 10g数据库备份与恢复操作手册
Oracle 10g数据库备份与恢复操作手册 目录 Oracle 10g数据库备份与恢复操作手册... 前言... 文档目的... 文档范围... 目标读者... 其他说明... 冷备份... 热备份 ...
- Oracle相关数据库操作
1.进入oracle后台操作 su - oracle 2.数据库备份的指定位置 Oracle用sys用户登录查询数据库 select * from dba_directories a where a. ...
- 菜鸡之NetCore 使用EF操作数据库 Oracle & Sqlserver (一)
摘要: 该篇文章主要记录netCore EFCore 如何操作Oracle和SqlServer 数据库,采用Codefirst方式创建数据库以及表. 一, 项目建立 项目采用DDD领域驱动设计模式[学 ...
随机推荐
- java注解编程@since 1.8
一.基本元注解: @Retention: 说明这个注解的生命周期 RetentionPolicy.SOURCE -> 保留在原码阶段,编译时忽略 RetentionPolicy.CLASS -& ...
- BERT实战——基于Keras
1.keras_bert 和 kert4keras keras_bert 是 CyberZHG 大佬封装好了Keras版的Bert,可以直接调用官方发布的预训练权重. github:https://g ...
- python 日产经销商
''' ajaxCallSiteInfo: {1C8B2BC6-35E2-460E-A63D-3576F3039D79} ''' import requests import json from db ...
- openstack stein部署手册 2. 基础应用
1. chrony # 安装程序包 yum install -y chrony # 变更配置文件 /etc/chrony.conf 增加 server 192.168.123.200 iburst # ...
- Django 项目环境搭建
环境 mkvirtualenv -p python3.6 mytest # 创建虚拟环境 workon mytest # 进入虚拟环境 # 按照基础环境依赖 pip install django==1 ...
- Linux之scp命令的使用
Linux之scp命令的使用 1. scp简介 1.1 命令功能: scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令.linux的scp命令可 ...
- 续上文,中的\\u00a0是怎么解释出来的
public String utf8ToUnicode(String inStr) { char[] myBuffer = inStr.toCharArray(); StringBuffer sb = ...
- Ubuntu菜单栏的位置可以调 到左侧 或者底部
hyx@hyx:/mnt/hgfs/Linux$ gsettings set com.canonical.Unity.Launcher launcher-position Bottom
- 在vscode中快速生成vue模板
点击文件-->首选项-->用户代码片段-->输入vue,此时会打开vue.json文件,将下列代码复制进文件保存即可,新建一个vue文件,输入vue回车即可生成模板,$0表示生成模板 ...
- windows2008R2-Exchange管理笔记
命令全在Exchange shell里面执行 批量修改用户属性 Set-User -Identity liganwei@yjcn.com -Phone "分机" -HomePhon ...