博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
数据库分页
阅读量:4325 次
发布时间:2019-06-06

本文共 983 字,大约阅读时间需要 3 分钟。

1.分页的概念

  从数据库中查询出的记录分页显示。

2.分页的目的

  • 美观
  • 提高效率

3.分页方式

  • 假分页
  • 真分页

  区别:

    假分页是将需要的记录全部查询出来一次加载在内存中,然后从内存中取出一定的记录条数进行显示。

    真分页是每次真的从数据库中取出一定的记录条数。

    显然,假分页更加消耗内存,在数据量很大时效率很低。因此,只有在数据量很小的时候才会考虑假分页,在实际应用中应用很多的是真分页。

 

4.如何分页

 select * from(  select e.*,rownum r from(    select * from t_temp order by empno  )e)where r<=end and r>=begin

已知条件

1.当前页currentPage
2.每页显示的最大行pageSize

容易推出

1.本页最后一行=currentPage * pageSize
2.上页最后一行=( currentPage - 1 ) * pageSize

推导公式

1.本页起始行
begin =上页最后一行 + 1
=( currentPage - 1 ) * pageSize + 1
2.本页终止行
end =本页最后一行
=currentPage * pageSize

5.总结

(1)数据库分页分为两种:真分页和假分页。实际应用中比较多的是真分页。

(2)真分页计算公式:

  本页起始行 = ( 当前页 - 1 ) * 每页显示最大行 + 1;

  本页终止行 = 当前页 * 每页显示最大行

(3)分页查询SQL语句:

  select * from(

   select e.*,rownum r from(           ---->step2:得到虚表e的「行号」和「全部记录」,便于分页  

    select * from emp order by empno     ---->step1:查询出所有记录并排序【虚表e】

   )e

  )where r>=begin and r<=end          ---->step3:按照分页条件查询最终结果(注意将begin和end用公式替换)

 

转载于:https://www.cnblogs.com/helloIT/p/5202869.html

你可能感兴趣的文章
Codeforces Round #445 C. Petya and Catacombs【思维/题意】
查看>>
用MATLAB同时作多幅图
查看>>
python中map的排序以及取出map中取最大最小值
查看>>
ROR 第一章 从零到部署--第一个程序
查看>>
<form>标签
查看>>
vue去掉地址栏# 方法
查看>>
Lambda03 方法引用、类型判断、变量引用
查看>>
was集群下基于接口分布式架构和开发经验谈
查看>>
MySQL学习——MySQL数据库概述与基础
查看>>
ES索引模板
查看>>
HDU2112 HDU Today 最短路+字符串哈希
查看>>
JPanel重绘
查看>>
图片放大器——wpf
查看>>
SCALA STEP BY STEP
查看>>
cocos2d-x学习笔记
查看>>
MySql中的变量定义
查看>>
Ruby数组的操作
查看>>
hdu1181暴搜
查看>>
解码字符串 Decode String
查看>>
json学习笔记
查看>>