這篇文章主要介紹“如何用數(shù)據(jù)庫(kù)分頁(yè)查詢(xún)語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)”,在日常操作中,相信很多人在如何用數(shù)據(jù)庫(kù)分頁(yè)查詢(xún)語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)問(wèn)題上存在疑惑,小編查閱了各式資料,整理出簡(jiǎn)單好用的操作方法,希望對(duì)大家解答”如何用數(shù)據(jù)庫(kù)分頁(yè)查詢(xún)語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)”的疑惑有所幫助!接下來(lái),請(qǐng)跟著小編一起來(lái)學(xué)習(xí)吧!

“只有客戶發(fā)展了,才有我們的生存與發(fā)展!”這是創(chuàng)新互聯(lián)的服務(wù)宗旨!把網(wǎng)站當(dāng)作互聯(lián)網(wǎng)產(chǎn)品,產(chǎn)品思維更注重全局思維、需求分析和迭代思維,在網(wǎng)站建設(shè)中就是為了建設(shè)一個(gè)不僅審美在線,而且實(shí)用性極高的網(wǎng)站。創(chuàng)新互聯(lián)對(duì)成都做網(wǎng)站、成都網(wǎng)站制作、網(wǎng)站制作、網(wǎng)站開(kāi)發(fā)、網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站優(yōu)化、網(wǎng)絡(luò)推廣、探索永無(wú)止境。
先看看單條 SQL 語(yǔ)句的分頁(yè) SQL 吧。
方法1:
適用于 SQL Server 2000/2005
SELECT TOP 頁(yè)大小 * FROM table1 WHERE id NOT IN ( SELECT TOP 頁(yè)大小*(頁(yè)數(shù)-1) id FROM table1 ORDER BY id ) ORDER BY id
方法2:
適用于 SQL Server 2000/2005
SELECT TOP 頁(yè)大小 * FROM table1 WHERE id > ( SELECT ISNULL(MAX(id),0) FROM ( SELECT TOP 頁(yè)大小*(頁(yè)數(shù)-1) id FROM table1 ORDER BY id ) A ) ORDER BY id
方法3:
適用于 SQL Server 2005
SELECT TOP 頁(yè)大小 * FROM ( SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNumber,* FROM table1 ) A WHERE RowNumber > 頁(yè)大小*(頁(yè)數(shù)-1)
說(shuō)明,頁(yè)大小:每頁(yè)的行數(shù);頁(yè)數(shù):第幾頁(yè)。使用時(shí),請(qǐng)把“頁(yè)大小”以及“頁(yè)大小*(頁(yè)數(shù)-1)”替換成數(shù)碼。
MySQL
SELECT * FROM TT LIMIT 1,20 SELECT * FROM TT LIMIT 21,30 /* 如果你是幾千上萬(wàn)數(shù)據(jù),就直接使用mysql自帶的函數(shù) limit的普通用法就ok了,如果是100萬(wàn)以上的數(shù)據(jù),可能就要講方法了,下面我們來(lái)做個(gè)百萬(wàn)級(jí)數(shù)據(jù)的分頁(yè)查詢(xún)語(yǔ)句. 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分頁(yè)的實(shí)際操作方案,其實(shí)關(guān)于實(shí)現(xiàn)MySQL分頁(yè)的最簡(jiǎn)單的方法就是利用利用mysql數(shù)據(jù)庫(kù)的LIMIT函數(shù),LIMIT [offset,] rows可以從MySQL數(shù)據(jù)庫(kù)表中第M條記錄開(kāi)始檢索N條記錄的語(yǔ)句為:
SELECT * FROM 表名稱(chēng) LIMIT M,N
例如從表Sys_option(主鍵為sys_id)中從第10條記錄開(kāi)始檢索20條記錄,語(yǔ)句如下:
select * from sys_option limit 10,20 select * from table [查詢(xún)條件] order by id limit ?,?
Oracle
Oracle的分頁(yè)查詢(xún)語(yǔ)句基本上可以按照這篇了,下一篇文章會(huì)通過(guò)例子來(lái)申述。下面簡(jiǎn)單討論一下多表聯(lián)合的情況。對(duì)最多見(jiàn)的等值表連接查詢(xún),CBO 一般可能會(huì)采用兩種連接方式NESTED LOOP以及HASH JOIN(MERGE JOIN效率比HASH JOIN效率低,一般CBO不會(huì)考慮)。在這里,由于使用了分頁(yè),因此指定了一個(gè)歸回的最大記載數(shù),NESTED LOOP在歸回記載數(shù)跨越最大值時(shí)可以頓時(shí)遏制并將結(jié)果歸回給中心層,而HASH JOIN必需處理完所有成集(MERGE JOIN也是)。那么在大部分的情況下,對(duì)分頁(yè)查詢(xún)選擇NESTED LOOP作為查詢(xún)的連接方法具有較高的效率(分頁(yè)查詢(xún)的時(shí)候絕大部分的情況是查詢(xún)前幾頁(yè)的數(shù)據(jù),越靠后面的頁(yè)數(shù)訪問(wèn)概率越小)。
因此,如果不介意在體系中使用HINT的話,可以將分頁(yè)的查詢(xún)語(yǔ)句改寫(xiě)為:
SELECT /*+ FIRST_ROWS */ * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT * FROM TABLE_NAME) A WHERE ROWNUM <= 40 ) WHERE RN >= 21
到此,關(guān)于“如何用數(shù)據(jù)庫(kù)分頁(yè)查詢(xún)語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識(shí),請(qǐng)繼續(xù)關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編會(huì)繼續(xù)努力為大家?guī)?lái)更多實(shí)用的文章!
當(dāng)前文章:如何用數(shù)據(jù)庫(kù)分頁(yè)查詢(xún)語(yǔ)句進(jìn)行數(shù)據(jù)庫(kù)查詢(xún)
文章地址:http://www.chinadenli.net/article36/iphipg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)網(wǎng)站制作、品牌網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、定制網(wǎng)站、自適應(yīng)網(wǎng)站、虛擬主機(jī)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)