第38卷 第1期数字技术与应用第 38 卷 数字技术与应用 www.szjsyyy.com2020年 1月Digital Technology &ApplicationVol.38 No.1January 2020应用研究DOI:10.19695/j.cnki.cn12-1369.2020.01.26常见关系数据库实现分页奚科芳(南京航空航天大学金城学院信息工程系,江苏南京 211156)摘要:在应用程序的开发中经常要用到各类关系数据库,本文主要阐述了目前流行的关系数据库ORACLE数据库、My SQL数据库、SQL Server数据库常用实现分页的方法。关键词:ORACLE;My SQL;SQL Server;实现分页中图分类号:TP311.13文献标识码:A文章编号:1007-9416(2020)01-0044-020 引言不管在PC Web开发还是在移动Web开发中几乎都要用到数据库,为了方便美观的展示数据,使用分页是必不可少的一项技术。本文主要讲述了当前常用关系数据库ORACLE数据库、My SQL数据库、SQL Server数据库实现分页方法。目前普通使用的关系数据库有ORACLE,My SQL,SQLServer,这三种数据库在实现分页时其分页查询语句又有差别,但在应用程序调用时,给出的参数基本都是相同的。已知当前页号和每页显示记录数,那需要考虑起始记录数和结束记录数与页码与每页显示的记录之间关系。各参数关系分析如下:pageSize -- 用来表示每页要显示的记录数,可提前给定currentPage -- 用来表示当前页的变量,可提前给定start -- 用来表示从那一条记录开始显示,需计算end -- 用来表示那一条记录结束显示,需计算start=(currentPage-1)*pageSize-- 开始显示的查询记录条数计算公式end=currentPage*pageSize-- 结束显示的查询记录条数计算公式存在关系模式emp(empno,ename,job,hiredate,sal,comm,deptno),其表示员工表中包括的字段有:员工编号、员工姓名、岗位、入职日期、月薪、奖金、部门编号。其表信息见表1。其中最内层的查询SELECT * FROM EMP表示不进行翻页的原始查询语句。ROWNUM <= end和RN >=start控制分页查询的每页的范围。1.3 常见误区SELECT e.*, ROWNUM RNFROM (SELECT * FROM emp ORDER BY empno) eWHERE ROWNUM >= start AND ROWNUM <= end以上SQL查询语句存在错误,因为ROWNUM只能执行<、<=运算,不能执行>、>=或一个区间运算Between…and等。另ROWNUM和ORDER BY一起使用时,因为ROWNUM在记录输出时生成,而ORDER BY子句在最后执行,所以当两者在一起使用时,其ROWNUM实际是已经被排了序的ROWRUM。1.4 常用通用sql分页格式SELECT * FROM(SELECT e.*, ROWNUM RNFROM (SELECT * FROM emp ORDER BY empno) eWHERE ROWNUM <= currentPage* pageSize)WHERE RN >=(currentPage-1)*pageSize2 SQL Server数据库实现分页2.1 思路表1 员工信息表(emp)job CLERK SALESMAN SALESMAN MANAGER SALESMAN MANAGER MANAGER ANALYST PRESIDENT SALESMAN CLERK CLERK ANALYST CLERK mgr 7902 7698 7698 7839 7698 7839 7839 7566 7698 7788 7698 7566 7782 hiredate 1980/12/17 1981/2/20 1981/2/22 1981/4/2 1981/9/28 1981/5/1 1981/6/9 1987/4/19 1981/11/17 1981/9/8 1987/5/23 1981/12/3 1981/12/3 1982/1/23 sal comm deptno 800 20 1600 300 30 1250 500 30 2975 20 1250 1400 30 2850 30 2450 10 3000 20 5000 10 1500 0 30 1100 20 950 30 3000 20 1300 10 1 Oracle数据库实现分页1.1 思路ROWNUM是一个伪例,可以返回结果empno ename 集的顺序号,在SQL查询语句中用它可以控制7369 SMITH 查询的起始记录条数和终止条数,在应用程序7499 ALLEN 开发过程中只需将起始条数和终止条数作为7521 WARD 专门的分页sql语句传入即可查询出想要的结JONES 果。以查询显示员工表中第“start”条到“end”7566 7654 MARTIN 条记录为例。7698 BLAKE 1.2 相关sql格式7782 CLARK SELECT * FROM7788 SCOTT (7839 KING SELECT e.*, ROWNUM RN7844 TURNER FROM (SELECT * FROM emp OR-7876 ADAMS DER BY empno) e7900 JAMES WHERE ROWNUM <= end7902 FORD )7934 MILLER WHERE RN >=start收稿日期:2019-12-06作者简介:奚科芳(1978—),女,江苏无锡人,硕士,副教授,研究方向:JAVA技术、数据库技术、操作系统。44Copyright©博看网 www.bookan.com.cn. All Rights Reserved.奚科芳:常见关系数据库实现分页“Top记录数”表示可以显示前多少记录数的信息。先取前currentPage页记录,然后倒序,取倒序后前pageSize条记录,这样就能得到分页所需要的数据,不过顺序反了,之后可以将再倒序回来,也可以不再排序了,直接交给前端排序。2020年第 1 期上面查询中LIMIT start,pagesize代表从第start条(不包含第2条)数据开始查询出pagesize条记录。3.2 通用sql分页格式SELECT * FROM emp LIMIT (currentPage-1)*pageSize,pagesize2.2 常用通用sql分页格式-- 分页查询(通用型)SELECT *FROM (SELECT TOP pageSize *FROM (SELECT TOP (currentPage*pageSize) *FROM empORDER BY empno ASC)-- 其中里面这层,必须指定按照升序排序,省略的话,查询出的结果是错误的。AS temp_sum_empORDER BY empno DESC ) temp_orderORDER BY empno ASC4 结语每种数据库都有它自己的优点及局限性,适用于不同的要求范围,每种数据库实现分页的方法有多种,本文重点讲述了三种数据库最通用、效率相对高的分页方法,Oracle数据库利用ROWNUM伪列来实现分页,SQL Server数据库利用TOP来实现分页,My SQL数据库利用LIMIT来直接实现分页,其中分页实现起来最简单的是My SQL数据库。参考文献[1] 孙风栋,闫海珍.Oracle 10g数据库海量数据分页查询优化[J].计算机应用与软件,2011(9):137-139.[2] 张辉,赵郁亮,徐江,等.基于Oracle数据库海量数据的查询优化研究[J].计算机技术与发展,2012(2):165-167.[3] 徐越人.Oracle Rownum的使用与JSP页显示的实现[J].计算机与现代化,2007(10):86-90.[4] 齐心.Oracle数据库分页技术的应用[J].智库时代,2019(14):221+226.3 My SQL数据库实现分页3.1 思路MySQL有个专门针对查询出一段数据的语句limit,使用起来非常的方便。SELECT * FROM emp LIMIT start,pagesizePagination of Common Relational DatabasesXI Ke-fang(Department of Information Engineering, Nanhang Jincheng College, Nanjing Jiangsu 211156)Abstract:In the development of applications, various kinds of relational databases are often used. This paper mainly describes the popular methodsof pagination of relational database Oracle database, my SQL database and SQL Server database.Key words:ORACLE;My SQL;SQL Server;pagination······上接第43页4 结语在科学技术飞速发展的今天,图书馆数字化自动化是必然趋势。充分的实现了知识共享以及个性化服务,为提高国民素质教育作出了贡献。数字化图书馆在应用云储存之后为在各方面都有了很大的提升,提高了图书馆信息资源服务的水平,为数字化图书馆的开展和推广提供来强有力的保障。云储存是信息化时代飞速发展的产物,也是必然结果。但是与此同时也会给图书馆管理者带来一个新的挑战。尽管其中还有诸多问题,云储存必然会在数字化图书馆中,是资源整合的有力手段,将会得到越来越多的应用。并在实践中修复规避更多的问题。参考文献[1] 陈少春.试论云存储在图书馆数字化中的应用性[J].图书馆理论与实践,2012(11):14-15.[2] 陶蕾.“云”下的图书馆网络存储探讨[J].图书馆学研究,2010(13):68-72.[3] 周可,王桦,李春花.云存储技术及其应用[J].中兴通讯技术,2010(04):29-32.[4] 李征.云计算在图书馆建设与信息服务中潜在价值探析[J].大学图书馆学报,2011(01):60-64+84.[5] 李永先,栾旭伦,李森森.图书馆迎来“云”时代[J].高校图书情报论坛,2009,8(1):59-61.Research on Digital Library Layout Based on Cloud Storage TechnologyWANG Zhen-zhen(Henan Polytechnic Institute, Nanyang Henan 473000)Abstract:With the progress of science and technology, the development of society. Traditional libraries have been unable to meet the needs ofmodern information resources. Therefore, digitalization has become a main construction content and development strategy direction of modern library.The combination of traditional library and modern cloud storage technology forms a powerful self-renewing management system and resource system.Therefore, in the digital era, more attention should be paid to the layout of the library, how to make more reasonable use of the storage space of the library,so that people with different needs can be satisfied more quickly; Therefore, the storage layout of digital library needs to be studied on the basis of cloudstorage technology. Reasonable layout arrangement can meet the different needs of different groups of people, so that readers can harvest an efficient andhigh-quality study space; Using cloud storage technology to set up digital library.Key words:cloud storage;digital;library;information;resources systemCopyright©博看网 www.bookan.com.cn. All Rights Reserved.45