搜索
首页数据库Oracleoracle分页查询原理是什么

oracle的分页查询原理:1、利用ORACLE的rownum字段的特性查询;2、查询指定数量N条数据;3、从指定数量N条查询结果中,取出M条数据;4、在web开发中将M、N作为参数进行传递,就可以得到分页的结果。

oracle分页查询原理是什么

本教程操作环境:Windows10系统、Oracle 11g版、Dell G3电脑。

oracle分页查询原理是什么

分页的原理:

        1.借助ORACLE的rownum这个字段的特性查询。

        2.  查询前N条数据

        3.从第2步的查询结果中取M到N条数据

       4.在web开发中将M,N作为参数进行传递,就可以得到分页的结果。

例子:  查询表中20~30条记录,sql语句如下。

select *   from( 
 select   rownum  as  pageNo,  A.*   from    tableName     A   where   rownum   <=   30)  B  where B.pageNo >=20;

示例:

--如何获取雇员表中薪水最高的前5人?

SELECT * FROM(
SELECT * FROM emp ORDER BY sal DESC)
WHERE Rownum<6

--如何获取雇员表中薪水排名第5的雇员信息

SELECT * FROM(
SELECT * FROM emp ORDER BY sal DESC)
WHERE Rownum=5

--结果查询不出内容

--同样ROWNUM>=5查询5名之后的成绩也失败

--这里就涉及到ROWNUM只能小于不能大于等于。所以--oracle数据库分页查询的一个重要障碍就是这个。

--至于原理因为ROWNUM是一个每一次都要从1开始排列的伪列。于是ROWNUM>=n。比如1大于任何n(第几条)都不成立。倒是可以ROWNUM=1.可以查到。因为1>=1成立。N=2,1>=2就不成立了。所以大于等于只能查第一条。加上小于等于。只能查这些了。所以这个困难算是增加了分页查询的难度与障碍。

--方法一 最简单的查询

--第五条到第十条。

--只有一层嵌套,一个子查询,

SELECT * FROM
(SELECT ROWNUM rn ,e.* FROM emp e WHERE ROWNUM<=10)
WHERE rn>=5;

--这样其实就是下面的方法转化而来。

--也就是子查询得到的新表再次被查询。

--关键的一步就是ROWNUM rn。

--而且不要忘了e.*,不然没有完整数据。

SELECT * FROM (SELECT ROWNUM rn, e.*
          FROM emp e
         WHERE ROWNUM <= 10) table_1
 WHERE table_1.rn>= 5;

--上面的没有排序,下面进行排序

--因为要先排序,才能查询,所以表越大,效率越慢。

--方法二

SELECT * FROM
(SELECT ROWNUM rm ,e.* FROM emp e order by sal DESC )
WHERE rm>=5 AND rm<=10

--下面是用分析函数的方法;

--方法三

SELECT * 
FROM (SELECT emp.*,
   ROW_NUMBER () OVER (ORDER BY sal DESC) rank 
    FROM emp)   
WHERE rank >=6 AND rank<=10;

--可是我们实际查询看一下结果,发现完全不一样。

--人工查看了一下。分析函数的方法结果是正确的。不理解。

--有没有谁能解释一下。

--下面来一个没有意义的

SELECT * FROM 
(SELECT e.*, ROWNUM AS rn from 
( SELECT * FROM emp ORDER BY sal DESC) e
)ee 
WHERE ee.rn>=5 AND ee.rn<=10

--方法四(海量数据查询,如百度,天猫查询)

SELECT * FROM(
SELECT e.* ,ROWNUM rn
FROM (
SELECT *
FROM emp
ORDER BY sal DESC
) e
WHERE  ROWNUM<=10
)WHERE rn>=6;

--分解步骤

--第一步:

SELECT * FROM emp ORDER BY sal DESC

--第二步:

SELECT e .*,ROWNUM rn FROM
(SELECT * FROM emp ORDER BY sal DESC) e

--第三步:

SELECT e .*,ROWNUM rn FROM
(SELECT * FROM emp ORDER BY sal DESC) e
WHERE ROWNUM<=10

--第四步:

SELECT * FROM(
SELECT e .*,ROWNUM rn FROM
(SELECT * FROM emp ORDER BY sal DESC) e
WHERE ROWNUM<=10)
WHERE rn>=5

--猜测错误。

SELECT e .*,ROWNUM rn FROM
(SELECT * FROM emp ORDER BY sal DESC) e
WHERE rn<=10

--起别名必须查询出数据表才行,

--而查询条件用还不存在的条件去判断,自然失败。

--方法五,闲的无聊的用法

WITH ee AS (
  SELECT e.*, ROWNUM rn FROM
 ( SELECT * FROM emp ORDER BY sal DESC )e
  )
  SELECT ee.*
  FROM ee
  WHERE ee.rn>=5 AND ee.rn<=10

推荐教程:《Oracle视频教程

以上是oracle分页查询原理是什么的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
Oracle的软件套件:解释的产品和服务Oracle的软件套件:解释的产品和服务May 09, 2025 am 12:12 AM

Oracle的软件套件包括数据库管理、ERP、CRM等,帮助企业优化运营、提高效率、降低成本。1.OracleDatabase管理数据,2.OracleERPCloud处理财务、人力资源和供应链,3.使用OracleSCMCloud优化供应链管理,4.通过API和集成工具确保数据流动和一致性。

MySQL与Oracle:许可,功能和福利MySQL与Oracle:许可,功能和福利May 08, 2025 am 12:05 AM

MySQL和Oracle的主要区别在于许可证、功能和优势。1.许可证:MySQL提供GPL许可证,免费使用,Oracle采用专有许可证,价格昂贵。2.功能:MySQL功能简单,适合Web应用和中小型企业,Oracle功能强大,适合大规模数据和复杂业务。3.优势:MySQL开源免费,适合初创公司,Oracle性能可靠,适合大型企业。

MySQL与Oracle:选择右数据库系统MySQL与Oracle:选择右数据库系统May 07, 2025 am 12:09 AM

MySQL和Oracle在性能、成本和使用场景上有显着差异。 1)性能:Oracle在复杂查询和高并发环境下表现更好。 2)成本:MySQL开源,成本低,适合中小型项目;Oracle商业化,成本高,适用于大型企业。 3)使用场景:MySQL适用于Web应用和中小型企业,Oracle适合复杂的企业级应用。选择时需根据具体需求权衡。

Oracle软件:最大化效率和性能Oracle软件:最大化效率和性能May 06, 2025 am 12:07 AM

Oracle软件可以通过多种方法提升性能。1)优化SQL查询,减少数据传输量;2)适当管理索引,平衡查询速度和维护成本;3)合理配置内存,优化SGA和PGA;4)减少I/O操作,使用合适的存储设备。

甲骨文:企业软件和云计算甲骨文:企业软件和云计算May 05, 2025 am 12:01 AM

Oracle在企业软件和云计算领域如此重要是因为其全面的解决方案和强大的技术支持。1)Oracle提供从数据库管理到ERP的广泛产品线,2)其云计算服务如OracleCloudPlatform和Infrastructure帮助企业实现数字化转型,3)Oracle数据库的稳定性和性能以及云服务的无缝集成提升了企业效率。

MySQL与Oracle:数据库系统的比较分析MySQL与Oracle:数据库系统的比较分析May 04, 2025 am 12:13 AM

MySQL和Oracle各有优劣,选择时需综合考虑:1.MySQL适合轻量级、易用需求,适用于Web应用和中小型企业;2.Oracle适合功能强大、可靠性高需求,适用于大型企业和复杂业务系统。

MySQL与Oracle:了解许可和成本MySQL与Oracle:了解许可和成本May 03, 2025 am 12:19 AM

MySQL采用GPL和商业许可,适合小型和开源项目;Oracle采用商业许可,适合需要高性能的企业。MySQL的GPL许可免费,商业许可需付费;Oracle许可费用按处理器或用户计算,成本较高。

甲骨文:从数据库到云服务甲骨文:从数据库到云服务May 02, 2025 am 12:05 AM

Oracle从数据库到云服务的演变历程表明其技术实力和市场洞察力强大。1.Oracle起源于上世纪70年代,以关系数据库管理系统闻名,推出了PL/SQL等创新功能。2.Oracle数据库核心是关系模型和SQL优化,支持多租户架构。3.Oracle云服务通过OCI提供IaaS、PaaS和SaaS,AutonomousDatabase表现出色。4.使用Oracle时需注意许可模式复杂、性能优化和云迁移中的数据安全问题。

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

EditPlus 中文破解版

EditPlus 中文破解版

体积小,语法高亮,不支持代码提示功能

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

安全考试浏览器

安全考试浏览器

Safe Exam Browser是一个安全的浏览器环境,用于安全地进行在线考试。该软件将任何计算机变成一个安全的工作站。它控制对任何实用工具的访问,并防止学生使用未经授权的资源。

Dreamweaver Mac版

Dreamweaver Mac版

视觉化网页开发工具