• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    详解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 rownum5) un
    where 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) n
    where 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    
    您可能感兴趣的文章:
    • oracle,mysql,SqlServer三种数据库的分页查询的实例
    • Oracle实现分页查询的SQL语法汇总
    • Oracle、MySQL和SqlServe三种数据库分页查询语句的区别介绍
    • Oracle分页查询性能优化代码详解
    • Oracle分页查询的实例详解
    • mysql、mssql及oracle分页查询方法详解
    • 详解SQLServer和Oracle的分页查询
    • oracle实现一对多数据分页查询筛选示例代码
    • Oracle使用MyBatis中RowBounds实现分页查询功能
    • 简单实例解释Oracle分页查询
    上一篇:实例分析ORACLE数据库性能优化
    下一篇:基于ORA-19815闪回空间爆满问题的处理方法
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    详解oracle分页查询的基础原理 详解,oracle,分页,查询,的,