您好,登錄后才能下訂單哦!
這篇文章主要介紹“如何用數(shù)據(jù)庫分頁查詢語句進行數(shù)據(jù)庫查詢”,在日常操作中,相信很多人在如何用數(shù)據(jù)庫分頁查詢語句進行數(shù)據(jù)庫查詢問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”如何用數(shù)據(jù)庫分頁查詢語句進行數(shù)據(jù)庫查詢”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
先看看單條 SQL 語句的分頁 SQL 吧。
方法1:
適用于 SQL Server 2000/2005
SELECT TOP 頁大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 頁大小*(頁數(shù)-1) id FROM table1 ORDER BY id ) ORDER BY id
方法2:
適用于 SQL Server 2000/2005
SELECT TOP 頁大小 * FROM table1 WHERE id > ( SELECT ISNULL(MAX(id),0) FROM ( SELECT TOP 頁大小*(頁數(shù)-1) id FROM table1 ORDER BY id ) A ) ORDER BY id
方法3:
適用于 SQL Server 2005
SELECT TOP 頁大小 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 ) A WHERE RowNumber > 頁大小*(頁數(shù)-1)
說明,頁大?。好宽摰男袛?shù);頁數(shù):第幾頁。使用時,請把“頁大小”以及“頁大小*(頁數(shù)-1)”替換成數(shù)碼。
SELECT * FROM TT LIMIT 1,20 SELECT * FROM TT LIMIT 21,30 /* 如果你是幾千上萬數(shù)據(jù),就直接使用mysql自帶的函數(shù) limit的普通用法就ok了,如果是100萬以上的數(shù)據(jù),可能就要講方法了,下面我們來做個百萬級數(shù)據(jù)的分頁查詢語句. 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分頁的實際操作方案,其實關(guān)于實現(xiàn)MySQL分頁的最簡單的方法就是利用利用mysql數(shù)據(jù)庫的LIMIT函數(shù),LIMIT [offset,] rows可以從MySQL數(shù)據(jù)庫表中第M條記錄開始檢索N條記錄的語句為:
SELECT * FROM 表名稱 LIMIT M,N
例如從表Sys_option(主鍵為sys_id)中從第10條記錄開始檢索20條記錄,語句如下:
select * from sys_option limit 10,20 select * from table [查詢條件] order by id limit ?,?
Oracle
Oracle的分頁查詢語句基本上可以按照這篇了,下一篇文章會通過例子來申述。下面簡單討論一下多表聯(lián)合的情況。對最多見的等值表連接查詢,CBO 一般可能會采用兩種連接方式NESTED LOOP以及HASH JOIN(MERGE JOIN效率比HASH JOIN效率低,一般CBO不會考慮)。在這里,由于使用了分頁,因此指定了一個歸回的最大記載數(shù),NESTED LOOP在歸回記載數(shù)跨越最大值時可以頓時遏制并將結(jié)果歸回給中心層,而HASH JOIN必需處理完所有成集(MERGE JOIN也是)。那么在大部分的情況下,對分頁查詢選擇NESTED LOOP作為查詢的連接方法具有較高的效率(分頁查詢的時候絕大部分的情況是查詢前幾頁的數(shù)據(jù),越靠后面的頁數(shù)訪問概率越?。?/p>
因此,如果不介意在體系中使用HINT的話,可以將分頁的查詢語句改寫為:
SELECT /*+ FIRST_ROWS */ * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21
到此,關(guān)于“如何用數(shù)據(jù)庫分頁查詢語句進行數(shù)據(jù)庫查詢”的學習就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。