取出sql表中第31到40的记录(以自动增长ID为主键)
sql server方案1:
select
top 10 * from t where id not in (select top 30 id from t order by id ) orde by
id
sql server方案2:
select
top 10 * from t where id in (select top 40 id from t order by id) order by id
desc
mysql方案:select * from t order by id
limit 30,10
oracle方案:select
* from (select rownum r,* from t where r<=40) where r>30
----------------------------------案例-------------------------------
pageSize=20;
pageNo = 5;
1.分页技术1(直接利用sql语句进行分页,效率最高和最推荐的)
mysql:sql =
"select * from articles limit " + (pageNo-1)*pageSize + ","
+ pageSize;
oracle: sql =
"select * from " +"(select
rownum r,* from " + "(select
* from articles order by postime desc)" +"where
rownum<= " + pageNo*pageSize +") tmp " +"where
r>" + (pageNo-1)*pageSize;
注释:第7行保证rownum的顺序是确定的,因为oracle的索引会造成rownum返回不同的值
简单提示:没有order by时,rownum按顺序输出,一旦有了order by,rownum不按顺序输出了,这说明rownum是排序前的编号。如果对order by从句中的字段建立了索引,那么,rownum也是按顺序输出的,因为这时候生成原始的查询结果集时会参照索引表的顺序来构建。
sqlserver:sql =
"select top 10 * from id not id(select top " + (pageNo-1)*pageSize +
"id from articles)"
DataSource ds = new
InitialContext().lookup(jndiurl);
Connection cn =
ds.getConnection();
//"select * from
user where id=?" --->binary
directive
PreparedStatement
pstmt = cn.prepareSatement(sql);
ResultSet rs =
pstmt.executeQuery()
while(rs.next())
{
out.println(rs.getString(1));
}
2.不可滚动的游标
pageSize=20;
pageNo = 5;
cn = null
stmt = null;
rs = null;
try
{
sqlserver:sql =
"select * from articles";
DataSource ds = new
InitialContext().lookup(jndiurl);
Connection cn =
ds.getConnection();
//"select * from
user where id=?" --->binary
directive
PreparedStatement
pstmt = cn.prepareSatement(sql);
ResultSet rs = pstmt.executeQuery()
for(int
j=0;j<(pageNo-1)*pageSize;j++)
{
rs.next();
}
int i=0;
while(rs.next()
&& i<10)
{
i++;
out.println(rs.getString(1));
}
}
cacth(){}
finnaly
{
if(rs!=null)try{rs.close();}catch(Exception
e){}
if(stm.........
if(cn............
}
3.可滚动的游标
pageSize=20;
pageNo = 5;
cn = null
stmt = null;
rs = null;
try
{
sqlserver:sql =
"select * from articles";
DataSource ds = new
InitialContext().lookup(jndiurl);
Connection cn =
ds.getConnection();
//"select * from
user where id=?" --->binary
directive
PreparedStatement
pstmt = cn.prepareSatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,...);
//根据上面这行代码的异常SQLFeatureNotSupportedException,就可判断驱动是否支持可滚动游标
ResultSet rs =
pstmt.executeQuery()
rs.absolute((pageNo-1)*pageSize)
int i=0;
while(rs.next()
&& i<10)
{
i++;
out.println(rs.getString(1));
}
}
cacth(){}
finnaly
{
if(rs!=null)try{rs.close();}catch(Exception
e){}
if(stm.........
if(cn............
}
分享到:
相关推荐
数据库SQL分页技术 数据库分页是指从大规模的数据集中提取指定的记录数,以减少数据传输量,提高应用程序的性能和用户体验。常见的数据库管理系统包括MySQL、SQL Server、Oracle、DB2等,每种数据库管理系统都有其...
### 三种数据库SQL分页方法详解 在数据库查询过程中,分页是非常常见且重要的一个功能。它可以帮助我们更高效地处理大量数据,特别是在构建大型应用系统时,分页技术能够显著提升用户体验。本文将详细介绍三种...
根据java语言对达梦DM数据库的连接和操作,包括建表、新增、修改、删除、查询以及复杂查询和分页查询等完整代码,附送Dm7Dictionary的驱动包,此驱动包兼容jdk1.7和jdk1.8本人亲测完美兼容
本话题主要关注的是使用易语言(Easy Language)实现ACCESS数据库的分页显示功能。易语言是中国本土开发的一款编程语言,以其直观、简单的语法设计,使得初学者也能快速上手编程。 首先,我们要理解什么是分页显示...
在MySQL数据库中,分页是处理大量数据查询时不可或缺的一种技术。它允许用户按需加载数据,而不是一次性获取所有记录,从而提高了用户体验并降低了服务器负载。以下是对分页实现的详细说明: 一、基础概念 分页是将...
几条常见的数据库分页SQL 语句,针对oracle,sqlserver,mysql三种常见数据库的分页显示。
### 数据库分页SQL语句实现 在开发MIS系统或Web应用系统时,经常会遇到对数据库进行分页处理的需求。这是因为数据量庞大时,一次性加载所有数据会给系统带来很大的负担,同时也会影响用户体验。因此,分页技术成为...
常用数据库分页sql(),1.oracle数据库分页;2.DB2数据库分页;3.SQL Server 2000数据库分页;4.SQL Server 2005数据库分页5.MySQL数据库分页
### SQL 数据库实现分页技术教程 #### 一、引言 随着互联网技术的发展,Web应用程序需要处理的数据量日益庞大。在数据展示方面,如果一次性加载过多的数据到前端页面,不仅会导致用户体验下降(如页面加载速度慢)...
不同的数据库系统提供了不同的分页机制,本文将详细介绍几种常见数据库(Oracle、DB2、SQL Server、PostgreSQL)的分页语法支持,并给出具体的示例。 #### Oracle 数据库分页 Oracle 支持多种分页方式,包括三层...
总结来说,易语言结合MySQL数据库的分页查询是通过建立连接、构建分页SQL、执行查询、处理结果和关闭连接等一系列步骤来实现的。理解这些步骤,并结合数据库优化技巧,可以帮助开发者构建出高效、友好的数据展示系统...
在易语言中,可以通过连接Access数据库,使用SQL查询语句来实现数据的分页获取。这通常涉及到游标、记录集等概念。源码中可能展示了如何设置查询条件、计算页数、获取每页数据的细节,以及如何在界面上更新数据显示...
本文将详细介绍在SQL Server、Oracle以及MySQL这三种常用数据库中实现分页查询的方法。 ### SQL Server 分页查询 #### 方法一:使用 `TOP` 关键字 SQL Server 提供了 `TOP` 关键字来进行分页查询。这种方式比较...
在Oracle数据库中,我们可以利用SQL查询的特定语法来实现分页。 Oracle数据库提供了两种主要的分页方法:ROWNUM和ROW_NUMBER()函数,以及Oracle 12c及更高版本引入的FETCH NEXT ... ROWS ONLY语法。 1. ROWNUM方法...
在Oracle数据库中,SQL分页是一种非常常见的查询技术,它允许我们从大量数据中按需获取一部分结果,而不是一次性加载所有记录。这对于提高用户体验和优化系统性能至关重要,尤其是在处理大数据量的Web应用中。本实践...
本教程将深入探讨如何在Qt应用中实现SQLite数据库的数据分页显示。 首先,我们需要在Qt项目中集成SQLite数据库支持。在Qt Creator中,新建一个Qt Widgets Application项目,然后在.pro文件中添加`QT += sql`来启用...
总结来说,LINQ to SQL的分页功能结合了强大的查询表达能力和数据库操作的便利性,为.NET开发者提供了高效的数据访问解决方案。通过理解和实践这些步骤,你可以在你的应用程序中实现高效的分页功能。
本文将详细介绍如何在三种不同的数据库系统(SQL Server、Access、Oracle)中实现高效的SQL分页查询。 #### SQL Server 分页查询 SQL Server 支持 `TOP` 关键字,这使得在 SQL Server 中实现分页变得相对简单。...
数据库真分页是一种高效的数据检索技术,特别是在处理大数据集时,能够显著提高用户界面的响应速度,提升用户体验。传统的分页方法(如LIMIT和OFFSET)在处理大量数据时可能存在性能问题,因为它们需要扫描和跳过不...
在SQL Server中,分页技术是一项关键功能,尤其在处理大量数据时,它能有效地提高查询性能并优化用户体验。在Web应用中,分页通常用于显示数据库中的数据列表,避免一次性加载所有数据导致的性能问题。以下是几种...