java oracle数据库高效分页查询_Oracle学习之分页查询数据
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学习之分页查询数据相关推荐
- java oracle数据库高效分页查询_oracle高效分页查询总结
探索查询语句: --分页参数:size = 20 page = 2 --没有order by的查询 -- 嵌套子查询,两次筛选(推荐使用) --SELECT * -- FROM (SELECT ROW ...
- oracle 与mysql查询_oracle与mysql分页查询语句sql
如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的 ...
- java+oracle数据库锁,数据库学习之Oracle数据库\记录被另一个用户锁住\解决方法...
1.先来看看为什么会出锁住: 数据库是一个多用户使用的共享资源.当多个用户并发地存取数据时,在数据库中就会产生多个事务同时存取同一数据的情况.若对并发操作不加控制就可能会读取和存储不正确的数据,破坏数 ...
- oracle数据库中关于部门工资前三高的查询(重点学习思路)
在oracle数据库中我使用的是Scott登录进行的部门工资前三高的查询,可能有很多方法,但是我没想到,于是请教大神提供了一种方法: 查询每个部门的工资最高前三名 1,方法一 select deptn ...
- Oracle数据库和PLSQL可视化工具学习笔记
我曾经看到过这么一句话--"最好的学习方法是自己学到了,然后讲给别人听." 的确,如果只有输入没有输出的学习就像水淋鸭背一样,大脑没有对所学的知识进行归纳整理,不进行系统的刻意练习 ...
- oracle数据库修改写入状态,【学习笔记】Oracle oradebug 使用oradebug修改数据库SCN方法案例...
天萃荷净 使用oradebug修改数据库scn,使用oradebug修改数据库scn的案例. 这里也做了两个测试,发现该功能确实很巧妙,通过修改内存中的scn值,然后写入控制文件和数据文件,实现修改s ...
- 查询oracle数据库的表格数据类型,excel表格中如何查询数据库数据类型-我想把excel表格中的数据导入oracle数据库中,想在......
在excel表里,什么是:字段.记录.数据类型.多工... declare @t table(id numeric(18,2)) insert into @t SELECT col1 FROM ...
- oracle数据库时分秒格式_Oracle如何输出指定格式的日期时间数据呢?
摘要: 下文讲述Oracle数据库输出指定的日期时间格式的方法分享,如下所示: 实现思路: 使用TO_CHAR系统函数,指定输出格式为'*******', 即可将日期时间转换为指定格式的字符串 如: ...
- oracle 不带时分秒,关于Oracle数据库不带日期中时分秒的查询
关于Oralce数据库 的日期时间查询: 下面我们先来看一组日期数据 表:myDate 列:time; 1998-8-7 23:45:33.3 1998-8-7 11:22:21.5 1998-8-7 ...
最新文章
- 深度学习在机器人视觉中的局限与优势(综述)
- 项目经理生存现状(漫画)
- thymeleaf中的模板布局
- 时光机穿梭---管理修改
- 房贷新政刺激楼市作用有限 房价严重背离无改变
- 高等组合学笔记(十一):分拆与Gauss二项式系数,恒等式与展开式
- java 序列化快捷键_IntelliJ IDEA生成 Serializable序列化UID的快捷键
- Helpful links
- 输入上标的html标签是,HTML上标sup与下标注sub标签元素
- 死磕jdk源码之如何注释
- php中rand函数怎么用,php rand函数用法是什么
- 初学python 没有动手没有发言权
- C语言小游戏解决生活中的数学问题
- 列表,元组,集合总结
- 屏幕尺寸/机型/系统版本判定
- 大话设计模式(下载)
- python 做交易软件下载_利用python下载股票交易数据
- python计算协方差矩阵_用Python构建协方差矩阵
- SINOVATION助力企业走向“智造”
- linux装Windows版QQ,在Linux下完美运行Windows PC版QQ/TIM教程
热门文章
- vs在release下调试时局部变量值错位修复
- 一叶知秋:“安全“的野指针、 static函数、成员函数、this 指针、gcc编译器、name mangling
- vscode制表位_vscode 常用配置
- 软件的接口设计图_基于GJB 5000A的软件配置管理研究与系统实现
- 相等变为1 编号_JavaScript 中的 4 个相等比较算法的介绍
- php 20分钟以前,php返回相对时间(如:20分钟前,3天前)的方法_PHP
- editview设置android:width不起作用,android – 如何使EditText具有最大宽度但仍填充父宽度...
- MySQL substr函数使用详解
- GVRP、VCMP、VTP、DTP——全网最完整的总结
- 2021年青海省大学生首届网络安全知识与技能大赛——赛题回顾及基本讲解