详解oracle分页查询的基础原理
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,本文从数据查询原理,以及分页实现的方法详细分析了oracle分页查询的基础知识,以下是本文内容:原因一oracle默认为每个表生成rowmun,rowid字段,这些字段我们称之为伪列1 创建测试表CR
千家信息网最后更新 2025年11月09日详解oracle分页查询的基础原理
本文从数据查询原理,以及分页实现的方法详细分析了oracle分页查询的基础知识,以下是本文内容:
原因一
oracle默认为每个表生成rowmun,rowid字段,这些字段我们称之为伪列
1 创建测试表
CREATE TABLE TEST(ID NUMBER,NAME VARCHAR2(20))
2 插入测试数据
INSERT INTO TEST VALUES (1,'张三');INSERT INTO TEST VALUES (2,'李四');INSERT INTO TEST VALUES (3,'王五');INSERT INTO TEST VALUES (4,'赵六');INSERT INTO TEST VALUES (5,'郑七');INSERT INTO TEST VALUES (6,'胡八');INSERT INTO TEST VALUES (7,'刘九');
3 查看表字段,证实自带的字段
select rowid,rownum,id,name from TEST;

4 rowid一般用不到,Oracle内部用来存储行的物理位置,和分页相关的就是rownum,也就是行号
二
1 查询小于5的行,查询出四条结果
select rowid,rownum,id,name from test where rownum <5;

2 查询大于2小于5的行
select rownum,id,name from test where rownum>2 and rownum <5;
发现什么也没查出来,什么原因呢?,
rownum有如下特点:
1 ROWNUM只适用于小于或小于等于,如果进行等于判断,那么只能等于1;
2 ROWNUM是oracle系统顺序分配的行的编号,返回的第一行分配的是1,第二行是2,依此类推;
3 ROWNUM总是从1开始
4 第一条数据行号为1,不符合>2的条件,则第一行被去掉,之前的第二行变为新的第一行,如此下去,一直到最后一行,条件始终没法满足,所以就一条数据也查不出来。
3 正确写法:因为>用不了,将行号用内层查询查询出来当做一个结果集,在外层用内层结果集进行比较即可
select rownum,id,name from( select rownum rn, u.* from test u where rownum<5) unwhere un.rn>2
4 如果进行分页的话,比如每页三行,要查询第二页,则相当于查4,5,6条,起始行4= (页码-1)*每页长度+1,结束行6=页码*每页长度
select rownum,id,name from ( select rownum rn , t.* from test t where rownum <=6) nwhere n.rn>=4
5 同样的可以把4中查询改为最常见的三层结构
select rownum,id,name from ( select rownum rn, n.* from ( select * from test --最内层循环该怎么写怎么写 ) n where rownum <=6 --小于限制写在第二层 ) where rn>=4
查询
一行
字段
数据
内层
结果
行号
原因
条件
长度
页码
分配
测试
原理
基础
依此类推
也就是
位置
内容
写法
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络技术公司提成方案
免费梯子服务器
对网络安全工作的意见和建议
学校网络安全应急队伍
怀旧服联盟哪个服务器好点
延庆区正规软件开发操作
平安保险软件开发年薪
数据库库表和实例
华为网络技术工程师中东
淘宝网数据库技术
元神苹果服务器
迎梦服务器
通过软件开发英文
网络安全手抄报小知识
圣才数据库系统原理课程
猫和老鼠官方服务器是什么
网络安全工作经验和心得体会
华为服务器故障分析
as在数据库中的含义
普通存档怎么变成服务器
软件开发职业技术等级与职称
如何建立数据库计划书
美国服务器url地址
asp显示数据库uid
mongodb同步图数据库
服务器怎么看双cpu
江苏企业软件开发电话多少
网络安全手抄报小知识
php数据库密码加密
银行软件开发方面的书