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

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

  随着数据库的发展,如今的数据库可以储存大量的数据,内存也是越来越大,但是无论您的内存多大,内存总是显得不够用,这时就要涉及到分页,下文中将为大家带来详细的数据库分页操作。

 1.Oracle:

1
2
select
*
from
(
select
row_.*, rownum rownum_
from
( query_SQL ) row_
where
rownum =<
max
)
where
rownum_ >=
min

 2.SQL Server:

1
2
select
top
@pagesize *
from
tablename
where
id
not
in
(
select
top
@pagesize*(@page-1) id
from
tablename
order
by
id)
order
by
id

 3.MySQL

1
select
*
from
tablename limit position, counter

 4.DB2

1
2
select
*
from
(
select
*,rownumber()
as
ROW_NEXT
from
tablename)
where
ROW_NEXT
between
min
and
max

 分页方案一:(利用Not In和SELECT TOP分页)效率次之

  语句形式:

1
2
3
4
5
6
SELECT
TOP
10 *
FROM
TestTable
WHERE
(ID
NOT
IN
(
SELECT
TOP
20  id
FROM 
TestTable  ORDERBY  id))   ORDERBYID
SELECT 
TOP
页大小 *
FROM
TestTable
WHERE
( ID
NOT
IN
 (
SELECT 
TOP 
每页大小-1*待查询页数-1  id 
FROM 
表 
ORDERBY  id)) ORDERBYID

  思路:先查询出待查询页之前的全部条数的id,查询ID不在这些ID中的指定数量条数。

 分页方案二:(利用ID大于多少和SELECT TOP分页)效率最高

  语句形式:

1
2
3
4
5
6
SELECT 
TOP 
10 *  
FROM 
TestTable
WHERE
(ID>(
SELECT
MAX
(id)
FROM
(
SELECT
TOP20 id 
FROM 
TestTable ORDERBYid)
AS
T))ORDERBY ID
SELECT 
TOP 
页大小*
FROM 
TestTable
WHERE
(ID>(
SELECT
MAX
(id)
FROM
(
SELECT
TOP
每页大小*待查询页数-1  id
FROM
 
ORDERBY id)
AS
T)) ORDERBY ID

  思路:先获得待查询页的之前全部条数id,获得它们当中最大的ID号,以此最大ID号为标志,查找比这个ID号大的指定条数。

 分页方案三:

1
2
3
4
SELECT
TOP
PageSize *
FROM
(
SELECT
TOP
nPage*PageSize *
from
YOURTABLE
order
by
id)
as
a
order
by
id
desc
SELECT
TOP
每页条数 *
FROM
(
SELECT
TOP
待查询页*每页条数) *
from
YOURTABLE
order
by
id)
as
a
order
by
id
desc

  思路:先正排序查询出待查询页之前(包括当前页)的全部条数,然后将其倒排序,取指定条数。

转载地址:http://hgdkx.baihongyu.com/

你可能感兴趣的文章
Python中的画图初体验
查看>>
关于前端的photoshop初探的学习笔记
查看>>
Java程序员的日常 —— 响应式导航Demo
查看>>
敏捷软件开发宣言--常读常新
查看>>
objective-c内存管理基础
查看>>
httpServlet,GenericServlet,Servlet源码分析
查看>>
easyUI——datebox验证和自定义取消按钮
查看>>
第 20 章 Nagios
查看>>
JS中的!=、== 、!==、===的用法和区别
查看>>
sap关于价值串的说法(转载)
查看>>
采购申请转采购订单错误:在语言EN中没有维护短文本(请重维护物料460300080)
查看>>
Migration to S/4HANA
查看>>
SAP WM LPK1 不能把 cross-material control cycles定义成release order parts
查看>>
HTML5 & CSS3初学者指南(3) – HTML5新特性
查看>>
Python 字符串
查看>>
device-mapper 块级重删(dm dedup) <3>代码结构(3)
查看>>
Lnmp 配置多 PHP 开发环境
查看>>
Centos7安装Docker镜像仓库Harbor1.5.3之https
查看>>
负载均衡群集之一LVS-DR
查看>>
大学生为什么要参加软考
查看>>