oracle 事务 数据伪列
在用户进行数据更新操作(DML)事务一定会起作用。
事务的出现会保证数据的完整性、一致性。在整个事务的处理过程之中主要使用两个操作命令:
· 事务的提交(COMMIT):是真正的向数据库之中发出更新指令;
· 事务的回滚(ROLLBACK):回滚到最初的状态。
一但用户发出了提交事务(commit)指令,那么所有的数据将被真实性的执行了更新操作。此时将无法使用 rollback
进行回滚。
在 Oracle 之中,每一个连接到数据库上的用户,都使用一个 session 的概念表示。每一个 Session 都拥有各自的事务
处理,这个也就是事务的隔离性。
那么如果说此时,两个 session 更新同一条数据呢?
范例:第一个 session 执行如下语句
UPDATE myemp SET sal=9000 WHERE empno=7499 ;
第一个 session 执行此语句的时候发现可以正常的提示完成,同时,此时并没有进行事务的提交或者是回滚。那么另
外一个 session 也发出了一条更新 7499 雇员的操作。
范例:第二个 session 执行如下语句
UPDATE myemp SET sal=9999 WHERE empno=7499 ;
发现此时执行之后,界面进入到了一个等待的状态。
行号:ROWNUM
在进行数据的显示时,用户可以通过 ROWNUM 这个伪列,动态的生成行的编号。
在 Oracle 里面 ROWNUM 主要有可以完成两个任务:
· 取得第一行数据;
· 取得前 N 行数据。
SELECT ROWNUM,empno,ename,job,hiredate FROM emp
WHERE deptno=10 AND ROWNUM=1 ; SELECT ROWNUM,empno,ename,job,hiredate FROM emp
WHERE ROWNUM<=10 ;
范例:数据的分页显示格式
SELECT * FROM (
SELECT 列 [别名] , 列 [别名] , ... , ROWNUM rn
FROM 表名称 [别名] , ...
WHERE ROWNUM<=currentPage*lineSize) temp
WHERE temp.rn>(currentPage - 1) * lineSize ;
行 ID:ROWID
现在每一行的记录都发现有自己的数据列,而除了这些数据列之外,还存在有每一行数据的唯一的物理地址,而这
个物理地址就只能够通过 ROWID 取得。
那么每一个 ROWID 数据都是包含有存储数据的,以:“AAAR3qAAEAAAACHAAC”为例做一个简单解释:
· “AAAR3q”:数据的对象编号;
· “AAE”:数据保存的相对文件编号;
· “AAAACH”:数据保存的块号;
· “AAC”:保存的数据行号。
数据库之中的所有数据都是在磁盘之中,保存,所以来讲,根据不同的数据会分配不同的空间,而 ROWID 就可以清
楚的记录这些空间的信息。
oracle 事务 数据伪列的更多相关文章
- Oracle的数据伪列(ROWNUM)
作者:Vashon 时间:20150414 数据库:Oracle11g 数据伪列(ROWNUM) *范例:查询前5条记录:select rownum,empno,job,hiredate,sal fr ...
- Oracle笔记(七) 数据更新、事务处理、数据伪列
一.数据的更新操作 DML操作语法之中,除了查询之外还有数据的库的更新操作,数据的更新操作主要指的是:增加.修改.删除数据,但是考虑到emp表以后还要继续使用,所以下面先将emp表复制一份,输入如下指 ...
- Oracle 中的伪列
昨天做了一个Oracle PL/SQL 相关的测试,其中有一道这样的题目: 下列那些是Oracle的伪列(ACD) A.ROWID B.ROW_NUMBER() C.LEVEL D.RO ...
- Oracle Schema Objects——伪列ROWID Pseudocolumn(ROWNUM、ROWID)
Oracle Schema Objects Oracle Schema Objects——Tables——Oracle Data Types Oracle伪列 在Oracle数据库之中为了实现完整的关 ...
- Oracle中ROWNUM伪列和ROWID伪列的用法与区别
做过Oracle分页的人都知道由于Oracle中没有像MySql中limit函数以及SQLServer中的top关键字等,所以只能通过伪列的方式去满足分页功能,在此,不谈分页方法,只从根本上去介绍这两 ...
- Oracle中的伪列
分页查询中,需要用到伪列rownum,代码如下: select * from (select rownum rn, name from cost where rownum <= 6) where ...
- Oracle面对“数据倾斜列使用绑定变量”场景的解决方案
1.背景知识介绍 2.构造测试用例 3.场景测试 4.总结 1.背景知识介绍 我们知道,Oracle在传统的OLTP(在线事务处理)类系统中,强烈推荐使用绑定变量,这样可以有效的减少硬解析从而 ...
- [Oracle11g] 通过伪列查询
oracle中的伪列默认第一行是1,所以可以选择<=rownum的方法选取,但是>是无法选取的.这时候需要固化伪列. 固化前可以这样查询:select * from 表名 where r ...
- oracle(sql)基础篇系列(三)——数据维护语句、数据定义语句、伪列
DML语句 insert 向表中插入新的记录 --三种插入方式 --(1)不写字段的名字,直接按照字段的顺序把值逐个往里插 insert into dept2 values(50,'DANAM ...
随机推荐
- 企业实施ERP的先后步骤,你真的了解吗?
信息化是我国加快实现工业化和现代化的必然选择.坚持以信息化带动工业化,以工业化促进信息化,在国民经济和社会领域广泛采用信息技术.国民经济信息化中企业的信息化工作是基础, ERP管理系统是IT技术和先进 ...
- 强网杯2018 pwn复现
前言 本文对强网杯 中除了 2 个内核题以外的 6 个 pwn 题的利用方式进行记录.题目真心不错 程序和 exp: https://gitee.com/hac425/blog_data/blob/m ...
- Android ListView几个重要属性
1.transciptMode属性,需要用ListView或者其它显示大量Items的控件实时跟踪或者查看信息,并且希望最新的条目可以自动滚动到可视范围内.通过设置的控件transcriptMode属 ...
- 游戏攻略 Re:LieF ~親愛なるあなたへ~ (relief给挚爱的你)
箒木 日向子 反対(賛成) ◆セーブ01 図書館へ向かう ◆セーブ02 日向子 食べてあげない もちろん.おいしかったよ コミュニケーション (汉化版显示为:交流) 日向子END ※回想2個目に追加 ...
- phantomJs页面操作
因为phantomjs能加载和操纵页面,它可以自动化地完美执行页面的各种操作. 操作文档: 脚本的被执行,就像它真的正在web 浏览器上运行一样. 下面的脚本,是读取元素id为myagent的文本内容 ...
- 12 Things Developers Will Love About Oracle Database 12c Release 2
by Chris Saxon-Oracle It's Here: Oracle Database 12c Release 2 (12.2) Is available on Oracle Cloud. ...
- 转:ClickOnce部署Winform程序的方方面面
1. ClickOnce简介 微软官方对ClickOnce的解释是:ClickOnce 是一项部署技术,您可以利用这项技术来创建基于 Windows 的自行更新的应用程序,并且安装和运行这类应用程序所 ...
- 2018年阿里巴巴关于java重要开源项目汇总
1.分布式应用服务开发的一站式解决方案 Spring Cloud Alibaba Spring Cloud Alibaba 致力于提供分布式应用服务开发的一站式解决方案.此项目包含开发分布式应用服务的 ...
- Linux FFmpeg(含x264、lame插件)安装记录
What is FFmpeg? FFmpeg是一套可以用来记录.转换数字音频.视频,并能将其转化为流的开源计算机程序.它提供了录制.转换以及流化音视频的完整解决方案. What is x264? H. ...
- Centos下防止ssh暴力破解密码
参考文章地址:https://yq.aliyun.com/ziliao/48446 https://www.cnblogs.com/lsdb/p/7095288.html 1.收集 /var/log/ ...