三种数据库SQL语句高效分页

分页显示技术的优劣比较(详解分页)附源代码 1.使用游标定位,丢弃不属于页面的数据   这是一种最简单的分页显示实现技术,在每个页面先查询所得到的所有数据行,接着使用游标定位到结果集中页面对应的行数,读取并显示该页面的数据,然后关闭数据库连接,丢弃该页面外结果集数据,---------该分页技术适用于数据量比较少的查询,但对于数据量大的查询操作来说效率很低.每次操作返回所有数据行.从而浪费了大量的内存.   2.使用缓冲结果集,一次查 阅读详情

三种数据库利用SQL语句进行高效果分页

在程序的开发过程中,处理分页是大家接触比较频繁的事件,因为现在软件基本上都是与数据库进行挂钓的。但效率又是我们所追求的,如果是像原来那样把所有满足条件的记录全部都选择出来,再去进行分页处理,那么就会多多的浪费掉许多的系统处理时间。为了能够把效率提高,所以现在我们就只选择我们需要的数据,减少数据库的处理时间,以下就是常用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、MySQL数据库
My sql数据库最简单,是利用mysql的LIMIT函数,LIMIT [offset,] rows从数据库表中M条记录开始检索N条记录的语句为:

  SELECT * FROM 表名称 LIMIT M,N

  例如从表Sys_option(主键为sys_id)中从10条记录还是检索20条记录,语句如下:

  select * from sys_option limit 10,20

==========================附加的分割线=========================================

---1.oracle

SELECT * FROM ( SELECT row_.*, rownum rownum_ FROM (...... ) row_ WHERE rownum <= ?) WHERE rownum_ > ?

先按查询条件查询出从0到页未的记录.然后再取出从页开始到页未的记录.(据说是效率最高的:))

---2. sql servler
i:select top [pagesize] * from table where id not in ( select top [pagesize*(currentpage-1)] id from table [查询条件] order by id ) and [查询条件] order by id

先按查询条件排除 pagesize*[pagesize*(currentpage-1)]以前的纪录。&&再按查询条件把他以后的记录 top[pagesize] 出来.
ii:
select top PageSize * from TableName where id > (select max(id) from (select top startRecord-1 id from TableName [查询条件] order by id) as TempTable) [查询条件] order by id
先取得开始该页开始时的最大ID,然后再从最大ID出top[pagesize]
(听说记录组超过10万第二条好过第一条)

---3.mysql
select * from table [查询条件] order by id limit ?,?
这个都不用说了。



本文来自于赛迪网 作者:10687 
数据库分页SQL语句实现 3大数据库(Sql-Server,MySql和Oracle)的分页SQL语句实现 立即下载

相关推荐

三大数据库的分页语句

该文档详细描述了三大数据库的分页sql语句。

T-SQL分页查询

分页查询的必要 针对于目标数据量庞大的查询结果,为了能够快速查询 分页查询有助于应用程序对数据的一个显示 如何T-SQL进行分页查询 使用NOT IN分页 SELECT TOP(5) * FROM StudentInfo WHERE StuID NOT IN(SELECT TOP(5)StuID FROM StudentInfo ORDER BY StuID) ORDER BY StuID SELECT TOP(每页的数据量) * FROM 表名 WHERE 标识列 NOT

Shao_mou_ren的博客 502

数据库真分页SQL语句

使用数据库特定SQL语句和存储过程真分页,用存储方式实现真分页,可以直接用的。

数据库常用语句汇总

数据库常用语句一、对数据库的操作1. 用SQL语句创建数据库2.用SQL语句修改数据库3.用SQL语句删除数据库二、对数据表的操作1.创建数据表定义数据表的约束NULL/NOT NULLUNIQUE约束(唯一约束)PRIMARY KET 主键约束外键约束CHECK 约束2.修改数据表3.删除数据表三、数据查询1.Select命令的格式及基本使用2.条件查询条件查询的基本格式多重条件查询的基本格式确定集合的条件查询的基本格式确定范围的条件查询的基本格式部分匹配的条件查询的基本格式空值查询3.常用函数查询4.分

weixin_47541520的博客 6577

数据库分页查询语句

数据库分页查询语句

从JTAG到AS模式:一文搞懂EP4CE10E22C8N所有配置引脚(MSEL, nCONFIG, DATA0)的用法

本文深入解析EP4CE10E22C8N FPGA的配置引脚(MSEL, nCONFIG, DATA0)在不同模式下的使用方法,特别关注从JTAG到AS模式的切换要点。通过详细的配置模式对比、状态机分析和PCB布局建议,帮助开发者避免常见陷阱,提升FPGA配置成功率。

weixin_33713350的博客 321

各类数据库分页SQL语法

各类数据库分页SQL语法

u011250186的博客 2338

JS实例(三)图片的缓慢放大和缩小

  我们经常能看到在一些网站中可以通过按钮实现对图片的放大或者缩小,也有可能是鼠标经过时图片放大。在本例中就是通过JavaScript实现图片的放大和缩小。   首先是进行简单的页面布局 1 <div class="imagedispose"> 2 <img src="1.jpeg" id="imaged" width="400px" height="3...

weixin_34235105的博客 314

SQL分页查询的写法总结-MySQL、SQL Server、Oracle

MySQL的分页实现是使用LIMIT关键字。Oracle的分页是实现主要是基于rownum行号。SQL Server的分页主要使用的关键字是TOP。

JavaAndLI的博客 1万+

别再只用CANape测数据了!手把手教你用ASAP2 Studio编辑A2L文件(附MAP文件更新避坑指南)

本文深入探讨ASAP2 Studio在ECU开发中的高阶应用,特别是如何利用其编辑A2L文件并同步更新MAP文件,提升测量标定效率。文章详细解析了ASAP2 Studio的双向同步能力、MAP文件更新全流程及变量管理技巧,帮助工程师避免常见错误,优化工作流程。

weixin_26833939的博客 508

海康工业相机SDK开发实战:从环境搭建到实时图像采集(附避坑指南)

本文详细介绍了海康工业相机SDK在Windows平台上的开发实战流程,涵盖从环境搭建、运行时库路径配置到实时图像采集的全过程。重点解析了MVS SDK部署、设备连接、参数设置及图像处理等核心环节,并提供了实用的避坑指南和错误排查方法,帮助开发者构建稳定的机器视觉系统。

weixin_29248611的博客 849

SQL Server下7种“数据分页”方案,全网最全

第三种,先把数据库中的相关数据全部读入“缓存”或第三方工具,再由代码程序对“缓存”或第三方工具中的数据进行读取+分页操作(速度快,简易性差)。这条语句的原理是先查询1-10条记录的ID,然后再查询ID不属于这1-10条记录的ID,并且只需要10条记录,因为每页大小就是10,第一种,把数据库中存放的相关数据,全部读入PHP/Java/C#代码/内存,再由代码对其进行分页操作(速度慢,简易性高)。第二种,直接在数据库中对相关数据进行分页操作,再把分页后的数据输出给代码程序(速度中,简易性中)。

风清扬的专栏 2946

【Chisel】2.4 时序逻辑

2.4 时序逻辑@[TOC](2.4 时序逻辑)前言寄存器(`Reg`)实例Chisel的状态函数实例2 RegNext实例3 RegInit移位器附录 显式的时钟信号和复位信号 前言 没有状态机的逻辑电路是不完整的,没有状态机的逻辑电路是不完整的,没有状态机的逻辑电路是不完整的,重要的事情说三遍。 这一节我们将要学习Chisel中的时序逻辑。在最后我们会实现一个移位器。 这里你需要知道的是,前面的这几节实际上都是对Chisel的基础语法的学习,它并不会给你带来很大的“惊喜”。Chisel真正的作用是把电路

快乐学习小猪猪的博客 845

JavaWeb分页显示内容之分页查询的三种思路(数据库分页查询)

感谢原文作者:有梦就能实现 原文链接:https://www.cnblogs.com/firstdream/p/7732672.html 简介 在开发过程中,经常做的一件事,也是最基本的事,就是从数据库中查询数据,然后在客户端显示出来。当数据少时,可以在一个页面内显示完成。然而,如果查询记录是几百条、上千条呢?直接一个页面显示完全的话,表格得多长啊。。。。。。这时,我们可以用分页技术。 何为分...

Jason的学习笔记 2218

学习笔记:TF卡启动荔枝派Nano(全志F1C200S)

荔枝派Nano编译Kernel报错报错内容如下编译烧录 报错内容如下 No controllers found No ethernet found. 从这些报错我真没看从出啥问题,也是在网上找,说是没有找到flash,是因为淘宝买的板子更换了flash,需要在u-boot里面重新适配型号: 板子的型号为xt25f128,但是实际u-boot的配置里面不是需要重新更改: u-boot/arch/arm/dts/suniv-f1c100s-licheepi-nano.dts &spi0 { pin

热爱科技,物联,程序开发等 2135

Python爬虫实战:全面解析裁判文书网法律文书抓取与分析

本文详细介绍了如何使用Python爬虫技术,分别通过Requests+BeautifulSoup、Selenium和Scrapy等方式,爬取裁判文书网的法律文书信息,并进行了验证码处理、数据存储和可视化分析。网页结构分析与数据提取;爬虫框架的使用;验证码处理策略;数据分析与可视化。爬取更多法律文书网站的数据;爬取文书的全文内容;构建法律文书搜索引擎;使用自然语言处理技术对法律文书进行深入分析。

2201_76125261的博客 1332

各大数据库分页SQL写法

1. mysql mysql分页的关键词是limit,看如下这句: mysql> SELECT * FROM message ORDER BY id DESC LIMIT 10000, 20 limit 10000,20的意思扫描满足条件的10020行,扔掉前面的10000行,返回最后的20行。 其实这样还是存在一些性能上的问题,更多看这里; 2. oracle oracle的分页...

一炮送你回车库的博客 275

YOLO11改进:轻量级改进 | 通用倒瓶颈(UIB)搜索块结合C3k2二次创新 | 轻量化之王MobileNetV4

通用倒瓶颈(UIB)搜索块替代YOLO11的C3k2

会AI的学姐 294

SQL分页语句

有关分页 SQL 的资料很多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是经过预编译的,执行效率高,也更灵活。先看看单条 SQL 语句的分页 SQL 吧。<br /><br />方法1:<br />适用于 SQL Server 2000/2005<br />SELECT TOP 页大小 *<br />FROM table1<br />WHERE id NOT IN<br />          (<br />          SELE

hcfjdwlmcchina的专栏 467

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

mysql、oracle、sqlserver三种数据库分页对比

①  oracle的分页操作 select * from(select m.*,ROWNUM rn from(select * from VIEWTONGJI4)m)where rn between 10 and 20;   使用此条sql,替换掉 between 10 and 20    蓝色部分内容即可     select *   from (select row_.*, r...

baidu_24545901的博客 453

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

数据库常见分页的处理方式

  亲爱的小伙伴们,我们今天要讲解的内容是Java的分页的相关内容,这里主要讲的是如何控制数据查询出指定记录的信息。 至于分页的具体方式,这里不做过多的介绍。感兴趣的话可以自己研究。 一.使用数据本身的分页方式进行相关分页操作     1.sql server数据的方案         方案一:         -- pager the record -- note: ...

weixin_34310785的博客 293

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

orcale 数据库分页

 orcale 数据库分页查询 SQL语句写法:推荐第三种 --分页查询一 select * from (select a1.*, rownum rn from (select * 数据库表名) a1 where rownum &lt;= 5) where rn &gt;= 1; --分页查询二 select a1.* from (select...

依着风睡的博客 424

分页的相关知识汇总

 比如:要求选取 tbllendlist 中 第3000页的记录,每一页100条记录。----------方法1:----------select top 100 * from tbllendlist where fldserialNo not in(select top 300100 fldserialNo from tbllendlist order by fldserialNo)orde

songjie521的专栏 719

php mysql查询分页查询语句_mysql 分页查询语句数据库查询_MySQL

bitsCN.comSQL Server关于分页 SQL 的资料许多,有的使用存储过程,有的使用游标。本人不喜欢使用游标,我觉得它耗资、效率低;使用存储过程是个不错的选择,因为存储过程是颠末预编译的,执行效率高,也更灵活。先看看单条 SQL 语句的分页 SQL 吧。方法1:适用于 SQL Server 2000/2005SELECT TOP 页大小 * FROM table1 WHERE id N...

weixin_36116139的博客 221

sql分页语句

<fontsize=3>        轉自﹕<fontface=Verdana>http://hi.baidu.com/injava/blog/item/9750e136112046300b55a9e2.html        我们在编写MIS系统和Web应用程序等系统时,都涉及到与数据库的交互,如果数据库中数据量很大的话,一次检索所有的记录,会占用系统很大的资源,

201

Oracle、MySQL、SQLServer实现分页

面试被问到Oracle分页是如何实现的,巩固一下吧 ---------------------------------------------------------------- 一、Oracle分页 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNU

HackAge4619的博客 698
上一篇: 史上最Lucky灾民
下一篇: jQuery页面滑动效果实例
系统信息
系统信息 领域专家: 后端开发技术领域 领域专家: 后端开发技术领域
博客等级 码龄23年 2404粉丝 565原创
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值