以前总结过一篇,Oracle分页查询语句的优化,当时对Oracle分页语句也着实花费了点时间记忆,不过今天在面试的时候,又考到了不同数据库的分页sql语句,对Oracle数据库的书写又存在了问题,以为很熟悉的分页sql书写起来也生疏了许多,这里再继续总结和整理一下,加深记忆。

Mysql的分页相对Oracle数据库来说,最是简单,通过提供的Limit关键字,即可方便的实现分页,如下:

SELECT

*

FROM testTable

WHERE 1 = 1

LIMIT 1, 20;

Oracle的分页sql,传统的是通过rownum,来进行分页,如下:

SELECT

*

FROM (SELECT

T1.*,

ROWNUM rn

FROM (SELECT

*

FROM testTable

ORDER BY id DESC) T1

WHERE ROWNUM <= 20)

WHERE rn > 0;

不过上面的分页sql在数据量庞大的时候,越往后的分页查询会越缓慢,还有另外的一种效率很高的分页查询,通过rownum和rowid来进行分页,如下:

SELECT

t1.*

FROM testTable t1, (SELECT

rid

FROM (SELECT

ROWNUM rn,

t.rid

FROM (SELECT

ROWID rid

FROM testTable

WHERE 1 = 1) t

WHERE ROWNUM <= 20)

WHERE rn > 0) t2

WHERE 1 = 1 AND t1.ROWID = t2.rid;

总结:分页的应用在各式各样的系统中,都是必不可少的组成部分,对分页sql的应用和优化也一直是程序开发中的重要成分,需要不断的记忆和总结。

oracle分页查询sql语句的rn,Mysql和Oracle中的分页SQL语句相关推荐

  1. oracle数据库需要的端口号,SQL Server数据库、MySQL、Oracle数据库各自的默认端口号...

    我们今天主要向大家讲述的是SQL Server数据库.MySQL.Oracle数据库各自的默认端口号,以下就是对SQL Server数据库.MySQL.Oracle数据库各自的默认端口号的描述,望在你 ...

  2. 来来来!一次搞定各种数据库 SQL 执行计划:MySQL、Oracle

    执行计划(execution plan,也叫查询计划或者解释计划)是数据库执行 SQL 语句的具体步骤,例如通过索引还是全表扫描访问表中的数据,连接查询的实现方式和连接的顺序等.如果 SQL 语句性能 ...

  3. linux python连接oracle数据库_Linux下通过python访问MySQL、Oracle、SQL Server数据库的方法...

    本文档主要描述了Linux下python数据库驱动的安装和配置,用来实现在Linux平台下通过python访问MySQL.Oracle.SQL Server数据库. 其中包括以下几个软件的安装及配置: ...

  4. 数据库查询当前时间大全(MySQL、Oracle、Sqlserver)

    文章目录 前言 数据库简介 优点 MySql时间查询 MySql查询当前时间 MySql查询上一年.上一个月.上一个星期... MySql查询本年.本月.本周... Oracle时间查询 oracle ...

  5. java分页查询_面试官:数据量很大,分页查询很慢,有什么优化方案?

    准备工作 一般分页查询 使用子查询优化 使用 id 限定优化 使用临时表优化 关于数据表的id说明 <Java 2019 超神之路> <Dubbo 实现原理与源码解析 -- 精品合集 ...

  6. oracle分组查询取第一条数据,160804、oracle查询:取出每组中的第一条记录

    oracle查询:取出每组中的第一条记录 按type字段分组,code排序,取出每组中的第一条记录 方法一: select type,min(code) from group_info group b ...

  7. mysql update delete_MySQL中UPDATE与DELETE语句的使用教程

    UPDATE 更新UPDATE SET 语法用于修改更新数据表中的数据. 语法: UPDATE tb_name SET column1 = new_value1,column2 = new_value ...

  8. excel单元格调用mysql数据_Excel中如何调用SQL数据

    通过参阅Excel帮助文档,我们可以发现一个很有用的外部函数SQL.REQUEST:http://office.microsoft.com/zh-cn/excel/HP052092672052.asp ...

  9. MySQL(7)数据库中的高级(进阶)语句:VIEW视图、联集和常见计算

    文章目录 一.VIEW(视图) 1.1 概念 1.2 创建.查看和删除视图 二.联集 2.1 UNION 2.2 UNION ALL 三.交集值 3.1 两表没有单独重复的行,并且确实有交集的时候用 ...

最新文章

  1. ubuntu不显示壁纸,桌面右键无反应
  2. 音视频技术开发周刊 | 226
  3. 机器学习常用的算法整理:线性回归、逻辑回归、贝叶斯分类、支持向量机、K-means聚类、决策树、随机森林以及常用的应用场景整理
  4. PyTorch框架学习十五——可视化工具TensorBoard
  5. 02.规划过程组表格-质量管理计划
  6. DEDECMS给图集图片{dede:productimagelist}自动编号
  7. Python 之 单例
  8. 《App后台开发运维和架构实践》推荐序
  9. 无法在驱动器0分区上安装windows解决方法
  10. 什么是java swing_Java干货:解读什么是swing
  11. 什么样的Java程序员可以去BAT公司上班?
  12. 美颜特效、黑白照片上色、AI人像动漫化,达摩院的学习营来了!
  13. 人工智能工程师要具备的5项基本技能
  14. 将fla文件的影片剪辑按钮等一些类文件和外部的as文件整合到swc中
  15. 关于vue-lic脚手架使用less和sass的配置
  16. [USACO2.1]Healthy Holsteins 健康的荷斯坦奶牛 题解(DFS/BFS详解)
  17. HelloWorld之jetty运行
  18. 顺序表类的声明java_顺序表实现解约瑟夫环_Java
  19. sass/lsee 转换css 网站 SASS 转 CSS 工具,在线 SASS/SCSS 编译工具 - 在线工具-wetools.com微工具
  20. 企业如何落地实施研发效能度量?

热门文章

  1. Tomcat服务的下载和安装
  2. MWORKS虚拟驾驶舱的设计与实现
  3. NGUI Key Binding使用方法
  4. 【PySCF学习3】-分子结构之对称性、电荷及自旋多重度
  5. 量子计算入门基础学习(四——对角化,算符 迹 张量积)
  6. 模糊逻辑控制器在matlab中调用,模糊逻辑控制器结构与设计(matlab).ppt
  7. 电阻参数_电阻器及电阻器参数
  8. 【ChatGPT】openai支持的国家有哪些:OpenAI‘s services are not available in your country. (error=unsupported_coun
  9. 基于java的留言板系统
  10. 使用Kalibr问题汇总:ModuleNotFoundError: No module named ‘wx‘