MySQL:

1.MySQL数据库实现分页比较简单,提供了 LIMIT函数。一般只需要直接写到sql语句后面就行了。

2.LIMIT子 句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数,如果给出两个参数, 第一个参数指定返回的第一行在所有数据中的位置,从0开始(注意不是1),第二个参数指定最多返回行数。例如:

select * from table WHERE … LIMIT 10; #返回前10行

select * from table WHERE … LIMIT 0,10; #返回前10行

select * from table WHERE … LIMIT 10,20; #返回第10-20行数据

Oracle:

在oracle中没有limit关键字,但是有 rownum字段,rownum是一个伪列,是oracle系统自动为查询返回结果的每行分配的编号,第一行为1,第二行为2,以此类推。。。。

1.第一种代码如下:

SELECT * FROM

()

其中最内层的查询SELECT * FROM TABLE_NAME表示不进行翻页的原始查询语句。ROWNUM <= 40和RN >= 21控制分页查询的每页的范围。

上面给出的这个分页查询语句,在大多数情况拥有较高的效率。分页的目的就是控制输出结果集大小,将结果尽快的返回。在上面的分页查询语句中,这种考虑主要体现在WHERE ROWNUM <= 40这句上。

选择第21到40条记录存在两种方法,一种是上面例子中展示的在查询的第二层通过ROWNUM <= 40来控制最大值,在查询的最外层控制最小值。而另一种方式是去掉查询第二层的WHERE ROWNUM <= 40语句,在查询的最外层控制分页的最小值和最大值。

2.第二种代码如下:

select * from

(  select e.*,rownum  r from 

(  select * from emp order by sal desc) e 

) e1

 ;

红色部分:按照工资降序排序并查询所有的信息。

棕色部分:得到红色部门查询的值,并查询出系统的rownum并指定上别名。这一句就比较关键,起了一个过渡的作用,首先要算出rownum来对红色部分指定上序号,也可以为蓝色外面部分用到这个变量。指定上查询的开始记录数和结束记录的条件。

蓝色部分:指定记录从第几条开始到第几条结束,取出棕色部门的值来作为查询条件的变量

总结:绝大多数的情况下,第一个查询的效率比第二个高得多。

最新文章

  1. 高级javascript---严格模式
  2. 開博客了, 因為搞Delphi 開發的關於Delphi學習
  3. hud 1019最小公倍数
  4. 用C#基于WCF创建TCP的Service供Client端调用
  5. 关键字static和this
  6. POI读写Excel简述之读取
  7. bold, big, blink
  8. jxse2.6在jdk8下,JxtaMulticastSocket存在的问题
  9. labview事件结构
  10. hadoop HDFS 写入吞吐量
  11. Win7家庭普通版、家庭高级版、专业版、旗舰版版本差别
  12. Java多线程——深入重入锁ReentrantLock
  13. Druid Indexing 服务
  14. ionic2 +Angular 使用自定义图标
  15. VMware下liunx虚拟机仅主机模式上网
  16. [No0000111]java9环境变量配置bat
  17. yolo3(目标检测)实测
  18. VC的function类说明 -- 继续
  19. chomd文件权限授予
  20. sonarqube扫描安卓代码

热门文章

  1. 【网寻】mui - 点击事件
  2. MySQL高级 InnoDB 和 MyISAM 的区别
  3. 操作系统OS - 反置页表
  4. leetcode刷题-- 4. 贪心
  5. LeetCode 680. Valid Palindrome II(双指针)
  6. 对简易网页版注册系统的制作(连接MySQL数据库)
  7. 七 异常处理的两种方式(创建全局异常处理器&amp;自定义异常)
  8. A Simple Problem with Integers-POJ3468 区间修改+区间查询
  9. mybatis注解中写SQL语句
  10. oracle中 lob类型