在程序的开发过程中,处理分页是大家接触比较频繁的事件,因为现在软件基本上都是与数据库进行挂钓的。但效率又是我们所追求的,如果是像原来那样把所有满足条件的记录全部都选择出来,再去进行分页处理,那么就会多多的浪费掉许多的系统处理时间。为了能够把效率提高,所以现在我们就只选择我们需要的数据,减少数据库的处理时间,以下就是常用SQL分页处理: 
   1、SQL Server、Access数据库 
   这都微软的数据库,都是一家人,基本的操作都是差不多,常采用如下分页语句: 
   PAGESIZE:每页显示的记录数 
   CURRENTPAGE:当前页号 
   数据表的名字是:components 
   索引主键字是:id 
select top PAGESIZE * from components where id not in
(select top (PAGESIZE*(CURRENTPAGE-1)) 
id from components order by id)order by id
   如下列: 
select top 10 * from components where id not in
(select top 10*10 id from components order by id)
order by id
从101条记录开始选择,只选择前面的10条记录
   2、Oracle数据库 
   因为Oracle数据库没有Top关键字,所以这里就不能够像微软的数据据那样操作,这里有两种方法: 
   (1)、一种是利用相反的。 
   PAGESIZE:每页显示的记录数 
   CURRENTPAGE:当前页号 
   数据表的名字是:components 
   索引主键字是:id 
select * from components where id not 
in(select id from components where                
rownum<=(PAGESIZE*(CURRENTPAGE-1))) 
and rownum<=PAGESIZE order by id;
   如下例: 
select * from components where id not in
(select id from components where rownum<=100) 
and rownum<=10 order by id;
   从101到记录开始选择,选择前面10条。 
   (2)、使用minus,即中文的意思就是减去。 
select * from components where rownum
<=(PAGESIZE*(CURRENTPAGE-1)) minus 
select * from components where rownum
<=(PAGESIZE*(CURRENTPAGE-2));
如例:select * from components where 
rownum<=10 minus select * from components 
where rownum<=5;.
   (3)、一种是利用Oracle的rownum,这个是Oracle查询自动返回的序号,一般不显示,但是可以通过select rownum from [表名]看到,注意,它是从1到当前的记录总数。 
select * from (select rownum tid,components.
* from components where rownum<=100) where tid<=10;

常用3种数据库的Sql分页相关推荐

  1. sql 单引号_三种数据库的 SQL 注入详解

    SQL 注入原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用 ...

  2. 三种数据库的 SQL 注入详解

    SQL 注入原理 SQL注入攻击指的是通过构建特殊的输入作为参数传入Web应用程序,而这些输入大都是SQL语法里的一些组合,通过执行SQL语句进而执行攻击者所要的操作,其主要原因是程序没有细致地过滤用 ...

  3. 【开源】QuickPager ASP.NET2.0分页控件V2.0.0.1——支持多种数据库。让分页更加简单。...

    分页控件的源代码下载网址:http://www.cnblogs.com/jyk/archive/2008/04/25/1170979.html (在网页的下面) 下载文件里面由一个测试网页:http: ...

  4. oracle数据库开多线程,学习笔记:Oracle表数据导入 DBA常用单线程插入 多线程插入 sql loader三种表数据导入案例...

    天萃荷净 oracle之数据导入,汇总开发DBA在向表中导入大量数据的案例,如:单线程向数据库中插入数据,多线程向数据表中插入数据,使用sql loader数据表中导入数据案例 1.Oracle数据库 ...

  5. 盘点几种数据库的分页SQL的写法(转)

    Data序列--盘点几种数据库的分页SQL的写法 http://www.cnblogs.com/fireasy/archive/2013/04/10/3013088.html 转载于:https:// ...

  6. 三种数据库sql分页查询

    关于sql分页 今天用到分页了顺便就总结了一下 mysql 数据库: mysql 中有分页的关键字limit,它可以实现分页很简单: SELECT * FROM sys_user ORDER BY u ...

  7. MySQL基础——数据库和SQL概述\MySQL基本使用\DQL语言学习\条件查询\排序查询\常见函数\分组查询\连接查询\子查询\分页查询\联合查询

    本文详细讲解了MySQL中DQL语言,也就是数据查询语句的使用.全文3w余字,是对学习MySQL知识的整理总结,因为篇幅较长,MySQL基础知识余下部分发表在余下博客中 DML语言学习\插入数据\删除 ...

  8. 详解大中小数据常用数据库的SQL语句、函数以及常见优化

    本篇文章主要介绍目前我在目前项目中使用过的一些数据库的用法,像中小型数据常用的关系型数据库Sql Server,大数据常用的数据库Hive,Hbase. 文章目录 SQL 你必须知道的 SQL网站 关 ...

  9. Oracle ——数据库 SQL 分页性能分析

    本文内容 创建测试表 test 及其数据 创建 test 表索引 创建 test 表的统计数据 测试数据分布情况 演示三种数据库分页的性能 总结 参考资料 本文内容并不新鲜,很早就有人写过,但那毕竟是 ...

最新文章

  1. (0098)iOS开发之应用间的分享系列(3)
  2. 11.2.2 例题11-3 Buy or Build
  3. 调整分区后盘符丢失的资料怎么寻回
  4. Vim skills
  5. 根据 dba_errors 制定 数据库报警邮件
  6. 博客园官方 NuGet镜像上线试运行
  7. BJRangeSliderWithProgress
  8. [转]如何处理机器学习中的不平衡类别
  9. 单反相机参数的直观认识
  10. 数据结构——郝斌老师——部分笔记
  11. STM32L452CCU6 STM32L432KCU6 GD32F407VKT6 嵌入式技术数据手册 32位ARM
  12. centos 7之firewalld防火墙配置IP伪装和端口转发案例详解
  13. ioremap 和 phys_to_virt区别
  14. java五子棋AI算法人机对战(春物彩羽版可下载试玩PC端)
  15. c1科目三灯光全语言播报,驾照科目三灯光模拟考试语音提示
  16. Flutter中获取监听屏幕方向、锁定屏幕方向
  17. java中string中转义_如何在String.Format中转义%?
  18. m.soudashi.cn 地图_搜索引擎网站推广优化有什么技巧?
  19. FZU2129 子序列总数 去重
  20. Mavicat连接mysql关闭防火墙_连接navicat的一些问题 主要是防火墙

热门文章

  1. FarPoint 应用总结
  2. Python天天美味(22) - 拷贝对象(深拷贝deepcopy与浅拷贝copy)
  3. hdu 5568(dp+大数模拟)
  4. java IO(输入输出) 字符流
  5. 大一java图书馆管理系统课程设计
  6. 最小生成树(prime算法、kruskal算法) 和 最短路径算法(floyd、dijkstra)
  7. Vue的v-for中列表项拖拽排序详细方法
  8. Java使用strategy模式构造程序
  9. BZOJ4723[POI2017]Flappy Bird——模拟
  10. 在URL上设置时间戳