`
as619864232
  • 浏览: 326414 次
社区版块
存档分类
最新评论

Oracle 中的 ROWID 和 ROWNUM

阅读更多

在 Oracle 的表的使用过程中,实际表中还有一些附加的列,称为伪列。伪列就像表中的列一样,但是在表中并不存储。伪列只能查询,不能进行增删改查操作。oracle 中的 ROWID 和 ROWNUM 就是其中的伪列:

Connected to Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 
Connected as scott

 

一、ROWID:表中没列数据的物理地址。通过 ROWID 查询表的效率是最高的。

SQL> select t.ename,rowid from emp t;
 
ENAME      ROWID
---------- ------------------
SMITH      AAAR3sAAEAAAACXAAA
ALLEN      AAAR3sAAEAAAACXAAB
WARD       AAAR3sAAEAAAACXAAC
JONES      AAAR3sAAEAAAACXAAD
MARTIN     AAAR3sAAEAAAACXAAE
BLAKE      AAAR3sAAEAAAACXAAF
CLARK      AAAR3sAAEAAAACXAAG
SCOTT      AAAR3sAAEAAAACXAAH
KING       AAAR3sAAEAAAACXAAI
TURNER     AAAR3sAAEAAAACXAAJ
ADAMS      AAAR3sAAEAAAACXAAK
JAMES      AAAR3sAAEAAAACXAAL
FORD       AAAR3sAAEAAAACXAAM
MILLER     AAAR3sAAEAAAACXAAN
 
14 rows selected

SQL> select t.ename,rowid from emp t where t.rowid = 'AAAR3sAAEAAAACXAAA';
 
ENAME      ROWID
---------- ------------------
SMITH      AAAR3sAAEAAAACXAAA

 oracle 中的各种索引则是通过不同的渠道获得 ROWID 从而达到高效率查询。

 

二、ROWNUM:表示结果集中每一行的行号,第一行为1,每行行号增加1,且 WHERE 条件中 ROWNUM 不能大于。

SQL> select ename,rownum from emp;
 
ENAME          ROWNUM
---------- ----------
SMITH               1
ALLEN               2
WARD                3
JONES               4
MARTIN              5
BLAKE               6
CLARK               7
SCOTT               8
KING                9
TURNER             10
ADAMS              11
JAMES              12
FORD               13
MILLER             14
 
14 rows selected


--利用 ROWNUM 实现分页功能。(每页显示5条数据,显示第二页)
SQL> select * from (select * from (select ename,rownum r from emp) t where r <= (2*5)) t2 where r > ((2-1)*5);
 
ENAME               R
---------- ----------
BLAKE               6
CLARK               7
SCOTT               8
KING                9
TURNER             10
分享到:
评论

相关推荐

    oracle_SQL中rowid与rownum的使用

    在Oracle SQL中,`ROWID`和`ROWNUM`是两个非常重要的概念,它们在数据库查询和数据操作中起着至关重要的作用。本文将详细探讨这两个特性,包括它们的定义、用途以及如何在实际场景中有效利用它们。 一、ROWID详解 `...

    oracle_SQL中ROWID与ROWNUM的使用

    ### Oracle SQL中ROWID与ROWNUM的使用 #### ROWNUM 的使用——TOP-N 分析 在 Oracle SQL 中,`ROWNUM` 是一种特殊的伪列,用于标识查询结果集中的行编号。它常用于实现 TOP-N 查询,即返回结果集中满足特定条件的...

    Oracle学习笔记(rownum和rowid)

    Oracle学习笔记(rownum和rowid),有具体的代码案例讲解rownum和rowid

    rowid与rownum区别

    ORACLE 中ROWNUM用法总结!数据库管理员及程序开发员必看。

    在oracle中灵活使用Rownum和rowId

    ### 在Oracle中灵活使用Rownum和RowId 在Oracle数据库中,`ROWNUM` 和 `ROWID` 是两个非常重要的概念,它们可以帮助我们在查询数据时实现更灵活的数据管理。本文将详细介绍这两个概念的区别及其使用方法,并通过...

    oracle_SQL-rowid--rownum.zip_oracle

    在Oracle SQL中,`ROWID`和`ROWNUM`是两个非常重要的概念,它们在数据库查询和操作中扮演着关键角色。本篇文章将详细解析这两个概念及其应用。 **ROWID** `ROWID`是Oracle数据库中一个特殊的伪列,它为每一行数据...

    rowid与rownumber

    rowid 和 rownum 是 Oracle 数据库中的两个重要概念,对于数据库开发人员来说非常重要。下面我们将详细介绍 rowid 和 rownum 的概念、结构、应用场景等。 一、rowid 概念 rowid 是 Oracle 数据库中的一个虚列,...

    Oracle查询语句中rownum与rowid的不同之处分析

    本文主要是以实例形式介绍了Oracle查询中rownum与rowid的不同之处,以及以假设的方式为例,查询条件为rownum = 2,在查询出第一条记录时的具体内容的介绍。 在查询中,我们可以注意到,类似于 select xx from ...

    对于 Oracle 的 rownum 问题

    另外:rowid 与 rownum 虽都被称为伪列,但它们的存在方式是不一样的,rowid 可以说是物理存在的,表示记录在表空间中的唯一位置ID,在DB中唯一。只要记录没被搬动过,rowid是不变的。rowid 相对于表来说又像表中的...

    Oracle DBA性能优化实践

    Hint.pdf Oracle中rowid与rownum的使用.pdf Oracle优化 之 索引.pdf Oracle优化器.pdf STATSPACK详解.pdf 学用ORACLE_AWR和ASH特性.pdf 执行计划.pdf

    oracle rownum 学习

    Oracle中的ROWNUM是在取数据的时候产生的序号,所以想对指定排序的数据去指定的ROWNUM行数据就必须注意了。例如: ```sql SELECT ROWNUM, ID, NAME FROM STUDENT ORDER BY NAME; ``` 可以看出,ROWNUM并不是按照NAME...

    关于oracle的rownum

    ROWID 相对于表来说又像表中的一般列,所以以 ROWID 为条件就不会有 ROWNUM 那些情况发生。 使用 ROWNUM 的时候需要注意以下几点: 1. 使用 ROWNUM 时,不能使用 &gt;, &gt;=, =, between...and 这些条件,因为这些条件...

    oracle-rownum用法

    ROWNUM 是 Oracle 系统中一个伪列,用于对查询返回的行进行编号,从 1 开始,每行递增 1。ROWNUM 可以用于限制查询返回的总行数,但需要注意的是,ROWNUM 不能以任何表的名称作为前缀。 等于某值的查询条件 在使用...

    ORACLE数据库中ROWNUM用法详解

    6. **ROWID与ROWNUM的区别**:ROWID是Oracle数据库中另一个伪列,它标识表中每行的物理位置,是表空间中记录的唯一标识。ROWID是物理存在的,不会因查询顺序改变而变化,可以作为查询条件,不会出现ROWNUM那样的问题...

    oracle的伪列与分页

    综上所述,Oracle伪列如ROWID和ROWNUM在实际应用中发挥着重要作用,不仅可以帮助优化查询性能,还能轻松实现复杂的分页功能。同时,通过Java JDBC编程,可以进一步提升应用程序与Oracle数据库的集成度和灵活性。

    基于Oracle RowID实现批量数据的分页下载.pdf

    总的来说,基于Oracle RowID的分页下载策略结合了`ROWNUM`、`StopKey`、逆向索引和多线程技术,旨在提供一种高效、稳定的方法来处理大规模数据的分批下载需求。这种策略不仅可以减轻数据库服务器的压力,还能确保...

Global site tag (gtag.js) - Google Analytics