Rownum 和 RowidOracle数据库所特有的,通过他们可以查询到指定行数范围内的数据记录。

 

以下通过例子讲解:

-- 为了方便,首先,查找dept表中的所有。

select deptno,dname,loc from scott.dept;

-- Rownum

-- 可以查询 rownum(行数) 为 1 的数据

select rownum,deptno,dname,loc

from scott.dept

where rownum = 1;

-- 如果直接查询 rownum 为 2 的数据,返回是 null

-- 因为 rownum 是临时产生的一个“伪列”

-- 是先获取到全部的数据之后,才决定如何分配 rownum

-- 需要先搞定 1,才能知道下一个是 2,即需要从1开始查起。

 

-- 查询最前面两条的记录

select rownum,deptno,dname,loc

from scott.dept

where rownum < 3;

-- 会从1开始查起,查到后接着查询2...直到不符合条件。

 

-- 下面查询结果为 null,因为1没有查,接下来的无从查起。

select rownum,deptno,dname,loc

from scott.dept

where rownum > 3;

-- 1开始查起,直到全部。

select rownum,deptno,dname,loc

from scott.dept

where rownum > 0;

-- Rowid是一串随机生成的字符串,也是 Oracle 提供的一个数列。

-- Rownum 和 Romid 区别

-- 一般情况下,每一行数据对应一个 rowid,这个值是固定而且唯一的。

-- 在这行数据存入数据库的时候,就确定的了,自动生成的。

-- 相当于我们 Java 对象在堆内存中对应有一个固定的地址值。

-- 可以使用 rowid 来查询记录,通过它可以提高我们的查询速度

-- 因为会有一张表单独保存 rowid,如果在查询的时候,

-- 需要扫描的列越少,速度就会越快,也是 oracle 查询最快的方式之一

-- rowid 在你的表发生移动时候,也会跟着一起发生改变。

-- 最大的一个作用:因为是唯一的,可以用来避免重复数据。

select rowid, deptno, dname, loc

from scott.dept

where rowid = 'AAAR3qAAEAAAACHAAC';

oracle数据库之rownum和rowid用法的更多相关文章

  1. Oracle数据库中序列(SEQUENCE)的用法详解

    Oracle数据库中序列(SEQUENCE)的用法详解   在Oracle数据库中,序列的用途是生成表的主键值,可以在插入语句中引用,也可以通过查询检查当前值,或使序列增至下一个值.本文我们主要介绍了 ...

  2. Oracle中的rownum 和rowid的用法和区别

    Oracle中的rownum 和rowid的用法和区别   1.rownum是伪列,是在获取查询结果集后再加上去的 (获取一条记录加一个rownum).对符合条件的结果添加一个从1开始的序列号. eg ...

  3. Oracle数据库之rownum

    1. 介绍 当我们在做查询时,经常会遇到如查询限定行数或分页查询的需求,MySQL中可以使用LIMIT子句完成,在MSSQL中可以使用TOP子句完成,那么在Oracle中,我们如何实现呢? Oracl ...

  4. oracle数据库触发器(trigger)用法总结

    from:http://blog.csdn.net/zhanzhib/article/details/48729417 触发器的意思就是当我们对数据库对象(一般是表或视图)进行insert.updat ...

  5. 关于Oracle数据库的rownum应用

    它是Oracle系统顺序分配为从查询返回的行的编号,返回的第一行分配的是1,第二行是2,以此类推,这个伪字段可以用于限制查询返回的总行数,而且rownum不能以任何表的名称作为前缀. 如以下语句将无法 ...

  6. java 查询oracle数据库所有表DatabaseMetaData的用法

    DatabaseMetaData的用法(转) 一 . 得到这个对象的实例 Connection con ; con = DriverManager.getConnection(url,userName ...

  7. Oracle中的rownum和rowid

    http://blog.csdn.net/mitedu/article/details/3584399  rownum http://blog.csdn.net/mitedu/article/deta ...

  8. oracle数据库查询语句case的用法

    实现功能: 1.先查询status=2的记录,如果查询到记录则返回第一条记录的Product_Name:2.如果查询不到status=2的记录,则判断status=1的记录是否存在,不存在则返回“请耐 ...

  9. oracle数据库中sql%notfound的用法

    SQL%NOTFOUND 是一个布尔值.与最近的sql语句(update,insert,delete,select)发生交互,当最近的一条sql语句没有涉及任何行的时候,则返回true.否则返回fal ...

随机推荐

  1. Angular总结三:组件

    Angular 的应用就是一棵组件树,一个页面可以是一个组件,某一页面的一个区块也可以是一个组件.为了弄明白组件及组件树,我将原来做过的一个静态网站进行组件改造. 原项目地址 https://gith ...

  2. Python基本知识3----序列

    前言: 序列:列表/元组/字符串 3种序列的共同点: 都可以通过索引得到每一个元素 默认索引值从0开始(还支持负数) 都可以通过切片的方式得到范围内的元素的集合 有很多共同的操作符(重复操作符.拼接操 ...

  3. 权限管理系统---django版本

    权限管理:在简单的系统中,以往都是将每个权限赋予给用户,每个用户访问某个功能,通过查询db来判断用户是否有权限.但是如下情景不能够解决: 1.随着系统的复杂,权限较为复杂的时候,权限条目也多,系统角色 ...

  4. (转)MySQL高可用方案MHA的部署和原理

    背后深层次的逻辑: MHA Node则运行在每个mysql节点上,MHA Manager会定时探测集群中的master节点,当master出现故障时,它自动将最新数据的slave提升为master,然 ...

  5. 404 Note Found 队-Beta6

    目录 组员情况 组员2:胡青元 组员3:庄卉 组员4:家灿 组员5:恺琳 组员6:翟丹丹 组员7:何家伟 组员8:政演 组员9:黄鸿杰 组员10:刘一好 组员11:何宇恒 展示组内最新成果 团队签入记 ...

  6. [教程] 【【【【odex教程之jar】】】】/system/framework里面的jar做odex g13

    dexopt-wrapper core.jar core.odex dexopt-wrapper ext.jar ext.odex dexopt-wrapper framework.jar frame ...

  7. asp.net core合并压缩资源文件(转载)

    在asp.net core中使用BuildBundlerMinifier合并压缩资源文件 在asp.net mvc中可以使用Bundle来压缩合并css,js 不知道的见:http://www.cnb ...

  8. CentOS 6.4 编译安装 gcc 4.8.1

    今天在isocpp上看到“GCC 4.8.1 released, C++11 feature complete”这个消息,非常兴奋.终于有一个全面支持C++11语言特性的编译器了! 当然了,gcc仅仅 ...

  9. java 快速开发框架平台 二次开发 代码生成器 springmvc SSM后台框架源码

    官网 http://www.fhadmin.org/D 集成安全权限框架shiro  Shiro 是一个用 Java 语言实现的框架,通过一个简单易用的 API 提供身份验证和授权,更安全,更可靠E ...

  10. BZOJ4033 [HAOI2015]树上染色

    本来是考虑, $ f[x][i][0/1] $ 表示 $ x $ 子树中有$i$个黑点,且 $ x $ 是白点/黑点.但是这里的答案是要统计不同的子树的贡献的.所以就gg了. 看了题解. 应该是要设$ ...