ROWID伪列

ROWID伪列概念:

  在数据表中每一行所保存的记录,oracle会为每条记录分配一个唯一的地址编号,这个编号就是通过ROWID表示的。

  所有的数据都利用ROWID进行定位。

观察rowid的存在

SQL> select rowid,deptno,dname,loc from dept;

ROWID               DEPTNO DNAME         LOC
------------------ ---------- -------------- -------------
AAAR3vAAEAAAACHAAA       10 ACCOUNTING     NEW YORK
AAAR3vAAEAAAACHAAB       20 RESEARCH         DALLAS
AAAR3vAAEAAAACHAAC       30 SALES         CHICAGO
AAAR3vAAEAAAACHAAD       40 OPERATIONS     BOSTON

  以deptno为10的rowid为例:

  •   数据对象号:AAAR3v
  •   相对文件号:AAE
  •   数据块号:AAAACH
  •   数据行号: AAA

通过函数定位出rowid的映射位置:

  

select rowid,
       dbms_rowid.rowid_object(rowid) 数据对象号,
       dbms_rowid.rowid_relative_fno(rowid) 相对文件号,
       dbms_rowid.rowid_block_number(rowid) 数据块号,
       dbms_rowid.rowid_row_number(rowid) 数据行号,
       deptno,
       dname,
       loc
  from dept;

结果:

				
时间: 2024-11-06 18:05:34

ROWID伪列的相关文章

rownum和rowid伪列

select row employee_id,last name,salary from employees; select row employee_id,last name,salary from employees where department_id=50; --查询牟彪中的前5条数据select rownum,employees.* from employees where rownum<=5; --查询牟彪中的第6到第10条数据(查不到)select rownum,employee

Oracle Schema Objects——伪列ROWID Pseudocolumn(ROWNUM、ROWID)

Oracle Schema Objects Oracle Schema Objects——Tables——Oracle Data Types Oracle伪列 在Oracle数据库之中为了实现完整的关系数据库的功能,专门为用户提供了许多的伪列. “NEXTVAL”和“CURRVAL”就是两个默认提供的操作伪列Oracle Schema Objects——Sequences(伪列:nextval,currval) SYSDATE与SYSTIMESTAMP也属于伪列SQL Fundamentals

Oracle分页查询=======之伪列的使用

========伪列========== 在Oracle数据库中,伪列不存在表中,但是可以从表中查询到 例如:SELECT ROWID 伪列,tname 教师姓名 FROM teacher; =========列号rownum========== 查询rownum返回表中数据的行号; 例如:SELECT ROWNUM 列号,tname 教师,sal 薪资 FROM teacher; 其中rownum只能在条件中做=1或者小于 的操作 例如:SELECT tname 教师名,sal 薪资 FROM

Oracle(零)--&gt; 伪列和分组聚合(Oracle 开篇,比较初级啦~)

   写在开篇~    不知不觉已然到了开学的时候,毕竟这个大三连暑假还不知道是什么就上岗了,看着周围同学秀的简直飞起 =.= 扯淡扯多了,再扯一句..大三的时候学的 Oracle ,但是现在一想竟然不觉得有何内容,而且触发器,存储过程老师也没有教过,自己也没有看过,实在...毕竟华为工程师说的那句话还是依稀在眼前..不管怎么样,先搞明白是何物,以后才在项目中知道该如何去使用.本流程基本按学习过程中 PPT 来走的,而再往前的东西概念太多,大家又不是很喜欢字,都爱看图嘛~视频就算了,太刺激了都受

oracle 之 伪列 rownum 和 rowid的用法与区别

rownum的用法 select  rownum,empno,ename,job from emp where rownum<6 可以得到小于6的值数据 select rownum,empno,ename,job from emp where rownum>6 and rownum<10 得不到数据  原因:oracle 中首先会产生编号为1的数据,也就是不满足条件,那么后面的同样会继续产生第二条数据同时也是编号为1,所以最后得不到数据 解决方案:可以将select rownum,emp

Oracle-12:伪列rowid和rownum

------------吾亦无他,唯手熟尔,谦卑若愚,好学若饥------------- 伪列:不真实存储在真表中,但是我们可以查询到不能对伪列进行增删改操作! 分页可以用rownum来分!!!!!!!(因为oracle中没有limit) 放一份数据库脚本,供测试使用 create table DEPT ( deptno NUMBER(2) not null, dname VARCHAR2(20), loc VARCHAR2(13) ); alter table DEPT add constra

浅析SQL Server数据库中的伪列以及伪列的含义

SQL Server中的伪列 下午看QQ群有人在讨论(非聚集)索引的存储,说,对于聚集索引表,非聚集索引存储的是索引键值+聚集索引键值:对于非聚集索引表,索引存储的是索引键值+RowId,这应该是一个常识,对此不作具体详细阐述.这里主要是提到的RowId引起了一点思考.那么,这个RowId是个什么玩意?能不能更加直观一点来看看RowId的信息?代表什么含义?这个当然也是可以的.Oracle中的表中有一个伪列的概念,就是在查询表的时候加上select rowid,* from Table,会查询出

约束、视图、序列、伪列和索引

前言 约束条件用于保证数据的完整性.主要有主键约束(primary key)/非空约束(not null).唯一约束(unique) 检查约束(check)和外键约束(foreign key). 正文 约束 主键约束(primary key) 主键约束包含了非空和唯一 create table 表名(字段名 字段类型(长度) 约束条件): 1.创建自定义名称约束 create table 表名(字段名 字段类型(长度),constraint 约束名 约束类型(字段名)): 注:可以通过user_

伪表和伪列

oracle的伪列以及伪表 oracle系统为了实现完整的关系数据库功能,系统专门提供了一组成为伪列(Pseudocolumn)的数据库列,这些列不是在建立对象时由我们完成的,而是在我们建立时由Oracle完成的.Oracle目前有以下伪列: 一.伪列: CURRVAL AND NEXTVAL 使用序列号的保留字 LEVEL 查询数据所对应的层级 ROWID 记录的唯一标识 ROWNUM 限制查询结果集的数量二.伪表 DUAL 表 该表主要目的是为了保证在使用SELECT语句中的语句的完整性而提