首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Oracle的分页

Oracle的分页

作者头像
@派大星
发布于 2023-06-28 10:51:12
发布于 2023-06-28 10:51:12
5010
举报
文章被收录于专栏:码上遇见你码上遇见你

Oracle的分页

伪列

要了解Oracle的分页查询就要知道一个很重要的概——伪列

伪列:

伪列是在ORACLE中的一个虚拟的列。

伪列的数据是由ORACLE进行维护和管理的,用户不能对这个列修改,只能查看。

所有的伪列要得到值必须要显式的指定。

伪列只能查询,不能增删改.

Oracle的常见伪列有:rowid、rownum。

01

rowid

rowid的产生:

是表的伪列,是用来唯一标识表中的一条记录,并且间接给出了表行的物理位置,定位表行最快的方式

使用insert语句插入数据时,oracle会自动生成rowid 并将其值与表数据一起存放到表行中。

这与rownum有很大不同,rownum不是表中原本的数据,只是在查询的时候才生成的。

主键:

标识唯一的一条业务数据的标识。主键是给业务给用户用的。不是给数据库用的。

记录编号rowid:

标识唯一的一条数据的。主要是给数据库用的。类似UUID。

rowid有以下几个用处:

· 能以最快的方式访问表中的一行

· 能显示表中行是如何存储的

· 可以作为表中行的唯一标识

rowid的常见应用:

去除重复数据。-- 在plsql Developer工具中,加上rowid可以更改数据

关于主键和rowid的区别:

相同点:为了标识唯一一条记录的。

不同点:主键:针对业务数据,用来标识不同的一条业务数据。

    rowid:针对具体数据的,用来标识不同的唯一的一条数据,跟业务无关。

02

下面说说最常用的伪列:rownum

此伪列用于返回一个数值代表行的次序.返回的第一行的rownum值为1,下一个为2,一次类推.通过使用它可以限制用户查询返回的行数

提示:rownum默认的排序就是根据rowid

注意:oracle认为rownum>N(也就是rownum>1)这种条件不成立,所以查不到记录

因为是伪列是根据查询出来的数据进行分配的,第一笔数据永远是1,第二笔也永远是2.当过滤了第一笔那么第二笔就成了第一笔,

Oracle分页:

//起始行号(下限)

firstRownum = pageSize*(pageNum-1)+1

//结束行号(上限)

endRownum = firstRownum+pageSize-1

例如:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-08-08,如有侵权请联系 cloudcommunity@tencent.com 删除
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档