Oracle的分页是不同于MySQL的,今天我们来讨论一下Oracle的分页,首先得知道两个概念

rowid和rownum

什么鬼?有鸟用啊?

我们从字面的英文翻译可以知道rowid是 “行id”,rownum是“行数字”

rowid是记录在创建的时候生成的,而且是不变的,直接指向硬件上的存储位置

我们可以在SQL Develop中选中一张表,右键 Edit data,就可以看到这么 一张表,这里依旧是使用scott自带的emp表演示:

可以看到每条记录都有一个rowid

我们可以这样使用rowid来查询

效率是最高的,但是rowid是由Oracle维护,程序猿无法做到。

rownum“行的数”,它是一个伪列,查询的时候,除非特别指定,否则不会显示,表示行号,常用于控制返回的行号。

说白了,伪列,要是记不住它可以把它当作“假冒伪劣产品",用来表示查询的记录是在第几行的,如下:

说了,这么多,这个“假冒伪劣产品”伪列有什么鸟用啊?

我们看,我们已经知道第几行什么元素,我们是不是就可以分页了

我们按照工资的大到小排序先:

嗯~ o(* ̄▽ ̄*)o? what?怎么伪列的顺序被打乱了,这还排个毛啊!!!!

由此我们也可以看出来,当 rownum 和 order by 一起使用时,会首先选出符合 rownum

条件的记录,然后再进行排序.,就是我们上面图片出现的情况↑ ↑ ↑

因此, 需要用子查询来完成.

好了,我们现在显示一下工资从大到小前5条的记录

接着,我们想要看一下,6——10的记录,怎么办呢?

what????什么鬼,没有???

由于先要进行 where 条件判断, 满足条件后才能生成

rownum, 所以导致 rownum 无法进行大于(>)和大于等于(>=)

的判断. 此时, 需要使用嵌套子查询来实现

也就是再把它当作一张表,我们再查找

那么问题来了,有没有什么规律呢?当传入一个page(当前页数),size(每页显示的记录数),我们该怎么表示呢?

java oracle数据库高效分页查询_Oracle学习之分页查询数据相关推荐

  1. java oracle数据库高效分页查询_oracle高效分页查询总结

    探索查询语句: --分页参数:size = 20 page = 2 --没有order by的查询 -- 嵌套子查询,两次筛选(推荐使用) --SELECT * -- FROM (SELECT ROW ...

  2. oracle 与mysql查询_oracle与mysql分页查询语句sql

    如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的 ...

  3. java+oracle数据库锁,数据库学习之Oracle数据库\记录被另一个用户锁住\解决方法...

    1.先来看看为什么会出锁住: 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数 ...

  4. oracle数据库中关于部门工资前三高的查询(重点学习思路)

    在oracle数据库中我使用的是Scott登录进行的部门工资前三高的查询,可能有很多方法,但是我没想到,于是请教大神提供了一种方法: 查询每个部门的工资最高前三名 1,方法一 select deptn ...

  5. Oracle数据库和PLSQL可视化工具学习笔记

    我曾经看到过这么一句话--"最好的学习方法是自己学到了,然后讲给别人听." 的确,如果只有输入没有输出的学习就像水淋鸭背一样,大脑没有对所学的知识进行归纳整理,不进行系统的刻意练习 ...

  6. oracle数据库修改写入状态,【学习笔记】Oracle oradebug 使用oradebug修改数据库SCN方法案例...

    天萃荷净 使用oradebug修改数据库scn,使用oradebug修改数据库scn的案例. 这里也做了两个测试,发现该功能确实很巧妙,通过修改内存中的scn值,然后写入控制文件和数据文件,实现修改s ...

  7. 查询oracle数据库的表格数据类型,excel表格中如何查询数据库数据类型-我想把excel表格中的数据导入oracle数据库中,想在......

    在excel表里,什么是:字段.记录.数据类型.多工... declare @t table(id numeric(18,2)) insert into @t SELECT   col1 FROM   ...

  8. oracle数据库时分秒格式_Oracle如何输出指定格式的日期时间数据呢?

    摘要: 下文讲述Oracle数据库输出指定的日期时间格式的方法分享,如下所示: 实现思路: 使用TO_CHAR系统函数,指定输出格式为'*******', 即可将日期时间转换为指定格式的字符串 如: ...

  9. oracle 不带时分秒,关于Oracle数据库不带日期中时分秒的查询

    关于Oralce数据库 的日期时间查询: 下面我们先来看一组日期数据 表:myDate 列:time; 1998-8-7 23:45:33.3 1998-8-7 11:22:21.5 1998-8-7 ...

最新文章

  1. 深度学习在机器人视觉中的局限与优势(综述)
  2. 项目经理生存现状(漫画)
  3. thymeleaf中的模板布局
  4. 时光机穿梭---管理修改
  5. 房贷新政刺激楼市作用有限 房价严重背离无改变
  6. 高等组合学笔记(十一):分拆与Gauss二项式系数,恒等式与展开式
  7. java 序列化快捷键_IntelliJ IDEA生成 Serializable序列化UID的快捷键
  8. Helpful links
  9. 输入上标的html标签是,HTML上标sup与下标注sub标签元素
  10. 死磕jdk源码之如何注释
  11. php中rand函数怎么用,php rand函数用法是什么
  12. 初学python 没有动手没有发言权
  13. C语言小游戏解决生活中的数学问题
  14. 列表,元组,集合总结
  15. 屏幕尺寸/机型/系统版本判定
  16. 大话设计模式(下载)
  17. python 做交易软件下载_利用python下载股票交易数据
  18. python计算协方差矩阵_用Python构建协方差矩阵
  19. SINOVATION助力企业走向“智造”
  20. linux装Windows版QQ,在Linux下完美运行Windows PC版QQ/TIM教程

热门文章

  1. vs在release下调试时局部变量值错位修复
  2. 一叶知秋:“安全“的野指针、 static函数、成员函数、this 指针、gcc编译器、name mangling
  3. vscode制表位_vscode 常用配置
  4. 软件的接口设计图_基于GJB 5000A的软件配置管理研究与系统实现
  5. 相等变为1 编号_JavaScript 中的 4 个相等比较算法的介绍
  6. php 20分钟以前,php返回相对时间(如:20分钟前,3天前)的方法_PHP
  7. editview设置android:width不起作用,android – 如何使EditText具有最大宽度但仍填充父宽度...
  8. MySQL substr函数使用详解
  9. GVRP、VCMP、VTP、DTP——全网最完整的总结
  10. 2021年青海省大学生首届网络安全知识与技能大赛——赛题回顾及基本讲解