详解SQLServer和Oracle的分页查询


本文整理自网络,侵删。

不管是DRP中的分页查询代码的实现还是面试题中看到的关于分页查询的考察,都给我一个提示:分页查询是重要的。当数据量大的时候是必须考虑的。之前一直没有花时间停下来好好总结这里。现在又将Oracle视频中关于分页查询的内容看了一遍,发现很容易就懂了。

1.分页算法
    最开始我在网上查找资料的时候,看到很多分页内容,感觉很多很乱。其实不是这样。网上那些资料大同小异。问题出在了我自己这里。我没搞明白进行分页的前提是什么?我们都知道只要有分页都会涉及这些变量:每页又多少条记录(pageSize)、当前页(pageNow)、总记录数(totalRecords)、总页数(totalPages)、开始页(beginRow)、结束页(endRow)。网上的那些资料分页算法有用到pageSize的,有用到beginPage还有用到endPage.其实这些变量需要分类:我将他们分为三类
    A.需要从数据库中查询出来的:totalRecords. " select count(*) from tableName"
    B.最基本的需要用户提供的:pageSize和pageNow.(个人觉得这是分页算法的前提)
    C.从其他变量计算得来的:totalPages、beginRow和endRow.(这里需要计算出beginRow和endRow是由于分页查询中需要用到,totalPages是页面需要提供的信息)。具体的计算公式:

totalPages: if ((totalRecords% pageSize) == 0) {  
             totalPages = totalRecords/ pageSize;  
           } else {  
             totalPages = totalRecords/ pageSize + 1;  
           } 
beginRow: (pageNow-1) * PageSize +1 
endRow:   pageNow * PageSize 

这样这些变量的值就都可以获得了。具体怎么使用请接着看2和3部分。

阅读剩余部分

相关阅读 >>

sql server数学函数的简单总结

c#操作linq to sql组件进行数据库建模的基本教程

sql中 decode()函数简介

sqlserver之常用函数总结详解

querywrapper中查询的坑及解决

mysql的一条慢sql查询导致整个网站宕机的解决方法

sql server各版本有什么区别

mysql命令无法输入中文问题的解决方式

非常详细的sql--join之完全用法

在postgresql中通过命令行执行sql文件

更多相关阅读请进入《sql》频道 >>


数据库系统概念 第6版
书籍

数据库系统概念 第6版

机械工业出版社

本书主要讲述了数据模型、基于对象的数据库和XML、数据存储和查询、事务管理、体系结构等方面的内容。



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...