一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

服務器之家:專注于服務器技術及軟件下載分享
分類導航

Mysql|Sql Server|Oracle|Redis|MongoDB|PostgreSQL|Sqlite|DB2|mariadb|Access|數據庫技術|

服務器之家 - 數據庫 - 數據庫技術 - 數據庫分頁查詢語句數據庫查詢

數據庫分頁查詢語句數據庫查詢

2021-10-20 17:21數據庫技術網 數據庫技術

關于分頁 SQL 的資料許多,有的使用存儲過程,有的使用游標。本人不喜歡使用游標,我覺得它耗資、效率低;使用存儲過程是個不錯的選擇,因為存儲過程是顛末預編譯的,執行效率高,也更靈活

先看看單條 SQL 語句的分頁 SQL 吧。

方法1:

適用于 SQL Server 2000/2005

?
1
SELECT TOP 頁大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id ) ORDER BY id

方法2:

適用于 SQL Server 2000/2005

?
1
SELECT TOP 頁大小 * FROM table1 WHERE id > ( SELECT ISNULL(MAX(id),0) FROM ( SELECT TOP 頁大小*(頁數-1) id FROM table1 ORDER BY id ) A ) ORDER BY id

方法3:

適用于 SQL Server 2005

?
1
SELECT TOP 頁大小 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 ) A WHERE RowNumber > 頁大小*(頁數-1)

說明,頁大小:每頁的行數;頁數:第幾頁。使用時,請把“頁大小”以及“頁大小*(頁數-1)”替換成數碼。

MYSQL

?
1
2
3
4
5
6
7
SELECT * FROM TT LIMIT 1,20
SELECT * FROM TT LIMIT 21,30
/*
如果你是幾千上萬數據,就直接使用mysql自帶的函數 limit的普通用法就ok了,如果是100萬以上的數據,可能就要講方法了,下面我們來做個百萬級數據的分頁查詢語句.
mysql> select * from news where id>=(select id from news limit 490000,1) limit 10; //0.18 sec //很 明顯,這 種方式勝出 .
mysql> select * from news limit 490000,10 //0.22 sec;
*/

以下的文章主要介紹的是MySQL分頁的實際操作方案,其實關于實現MySQL分頁的最簡單的方法就是利用利用mysql數據庫的LIMIT函數,LIMIT [offset,] rows可以從MySQL數據庫表中第M條記錄開始檢索N條記錄的語句為:

SELECT * FROM 表名稱 LIMIT M,N
例如從表Sys_option(主鍵為sys_id)中從第10條記錄開始檢索20條記錄,語句如下:

?
1
2
select * from sys_option limit 10,20
select * from table [查詢條件] order by id limit ?,?

Oracle

Oracle的分頁查詢語句基本上可以按照這篇了,下一篇文章會通過例子來申述。下面簡單討論一下多表聯合的情況。對最多見的等值表連接查詢,CBO 一般可能會采用兩種連接方式NESTED LOOP以及HASH JOIN(MERGE JOIN效率比HASH JOIN效率低,一般CBO不會考慮)。在這里,由于使用了分頁,因此指定了一個歸回的最大記載數,NESTED LOOP在歸回記載數跨越最大值時可以頓時遏制并將結果歸回給中心層,而HASH JOIN必需處理完所有成集(MERGE JOIN也是)。那么在大部分的情況下,對分頁查詢選擇NESTED LOOP作為查詢的連接方法具有較高的效率(分頁查詢的時候絕大部分的情況是查詢前幾頁的數據,越靠后面的頁數訪問概率越小)。

因此,如果不介意在體系中使用HINT的話,可以將分頁的查詢語句改寫為:

?
1
2
3
4
5
6
7
SELECT /*+ FIRST_ROWS */ * FROM
(
SELECT A.*, ROWNUM RN
FROM (SELECT * FROM TABLE_NAME) A
WHERE ROWNUM <= 40
)
WHERE RN >= 21

作者“ERDP技術架構”

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产一区二区三区日韩 | 国模丰满美女冰漪34d | 日韩精品一区二区三区老鸭窝 | 大肚孕妇的高h辣文 | 国产精品www夜色影视 | 秋霞午夜视频在线观看 | 福利视频一区二区三区 | 欧美爽妇 | 男人晚上看的 | 国产巨大bbbb俄罗斯 | 国内小情侣一二三区在线视频 | avtt在线观看 | 国产亚洲一欧美一区二区三区 | heyzo1754北岛玲在线视频 | 色悠久久久久综合欧美99 | 欧美一区不卡二区不卡三区 | 波多野结衣中文字幕 | 亚洲AV永久无码精品老司机蜜桃 | 国产精品国产高清国产专区 | 日本高清视频在线免费观看 | 激情五月姐姐 | 日韩久久影院 | 四虎在线网站 | 亚洲+欧美+国产+综合 | 狠狠干快播 | 消息称老熟妇乱视频一区二区 | 亚洲精品第五页中文字幕 | 美艳教师刘艳第三部166 | a片毛片在线免费看 | 国产精品51麻豆cm传媒 | 色综合伊人色综合网亚洲欧洲 | 34g污奶跳舞 | 乌克兰bbw | 好大好爽好涨太深了小喜 | 国产自在线观看 | 欧美综合色网 | 成年人免费看的视频 | 免费精品99久久国产综合精品 | 国产欧美一区二区精品性色99 | 精品人人做人人爽久久久 | 免费国产白棉袜踩踏区域 |