亚洲国产日韩欧美一区二区三区,精品亚洲国产成人av在线,国产99视频精品免视看7,99国产精品久久久久久久成人热,欧美日韩亚洲国产综合乱

目錄
oracle分頁查詢原則是什麼
首頁 資料庫 Oracle oracle分頁查詢原理是什麼

oracle分頁查詢原理是什麼

Jan 25, 2022 pm 04:59 PM
oracle

oracle的分頁查詢原理:1、利用ORACLE的rownum欄位的特性查詢;2、查詢指定數(shù)量N條資料;3、從指定數(shù)量N條查詢結果中,取出M條資料;4、在web開發(fā)中將M、N當作參數(shù)傳遞,就可以得到分頁的結果。

oracle分頁查詢原理是什麼

本教學操作環(huán)境:Windows10系統(tǒng)、Oracle 11g版、Dell G3電腦。

oracle分頁查詢原則是什麼

分頁的原則:

? ? ? ? 1.使用ORACLE的rownum這個欄位的特性來查詢。

? ? ? ? 2. ?查詢前N個資料

? ? ? ? 3.從第2步驟的查詢結果中取M到N條資料

? ? ? ?4.將M,N當作參數(shù)傳遞,就可以得到分頁的結果。

範例:? 查詢表中20~30筆記錄,sql語句如下。

select *   from( 
 select   rownum  as  pageNo,  A.*   from    tableName     A   where   rownum   <=   30)  B  where B.pageNo >=20;

範例:

--如何取得員工表中薪水最高的前5人?

SELECT * FROM(
SELECT * FROM emp ORDER BY sal DESC)
WHERE Rownum<6

--如何取得員工表中薪水排名第5的員工資訊

SELECT * FROM(
SELECT * FROM emp ORDER BY sal DESC)
WHERE Rownum=5

--結果查詢不出內(nèi)容

--同樣ROWNUM>=5查詢5名之後的成績也失敗

--這裡就牽涉到ROWNUM只能小於不能大於等於。所以--oracle資料庫分頁查詢的一個重要障礙就是這個。

--至於原理因為ROWNUM是一個每一次都要從1開始排列的偽列。於是ROWNUM>=n。例如1大於任何n(第幾條)都不成立。倒是可以ROWNUM=1.可以查。因為1>=1成立。 N=2,1>=2就不成立了。所以大於等於只能查第一條。加上小於等於。只能查這些了。所以這個困難算是增加了分頁查詢的難度與障礙。

--方法一 最簡單的查詢

--第五條到第十條。

--只有一層嵌套,一個子查詢,

SELECT * FROM
(SELECT ROWNUM rn ,e.* FROM emp e WHERE ROWNUM<=10)
WHERE rn>=5;

#--這樣其實就是下面的方法轉換而來。

--也就是子查詢得到的新表再次被查詢。

--關鍵的一步就是ROWNUM rn。

--而且不要忘了e.*,不然沒有完整資料。

SELECT * FROM (SELECT ROWNUM rn, e.*
          FROM emp e
         WHERE ROWNUM <= 10) table_1
 WHERE table_1.rn>= 5;

--上面的沒有排序,下面進行排序

--因為要先排序,才能查詢,所以表越大,效率越慢。

--方法二#??##

SELECT * FROM
(SELECT ROWNUM rm ,e.* FROM emp e order by sal DESC )
WHERE rm>=5 AND rm<=10

--下面是用分析函數(shù)的方法;

--方法三

SELECT * 
FROM (SELECT emp.*,
   ROW_NUMBER () OVER (ORDER BY sal DESC) rank 
    FROM emp)   
WHERE rank >=6 AND rank<=10;

--可是我們實際查詢看一下結果,發(fā)現(xiàn)完全不一樣。

--人工查看了一下。分析函數(shù)的方法結果是正確的。不理解。

--有沒有誰能解釋一下。

--下面來一個沒有意義的

SELECT * FROM 
(SELECT e.*, ROWNUM AS rn from 
( SELECT * FROM emp ORDER BY sal DESC) e
)ee 
WHERE ee.rn>=5 AND ee.rn<=10

--方法四(海量資料查詢,如百度,天貓查詢)

SELECT * FROM(
SELECT e.* ,ROWNUM rn
FROM (
SELECT *
FROM emp
ORDER BY sal DESC
) e
WHERE  ROWNUM<=10
)WHERE rn>=6;

--分解步驟

--第一步:

SELECT * FROM emp ORDER BY sal DESC

--第二步:

SELECT e .*,ROWNUM rn FROM
(SELECT * FROM emp ORDER BY sal DESC) e

--第三步:

SELECT e .*,ROWNUM rn FROM
(SELECT * FROM emp ORDER BY sal DESC) e
WHERE ROWNUM<=10

--第四步:

SELECT * FROM(
SELECT e .*,ROWNUM rn FROM
(SELECT * FROM emp ORDER BY sal DESC) e
WHERE ROWNUM<=10)
WHERE rn>=5

--猜測錯誤。

SELECT e .*,ROWNUM rn FROM
(SELECT * FROM emp ORDER BY sal DESC) e
WHERE rn<=10

--起別名必須查詢出資料表才行,

--而查詢條件用還不存在的條件去判斷,自然失敗。

--方法五,閒的無聊的用法

WITH ee AS (
  SELECT e.*, ROWNUM rn FROM
 ( SELECT * FROM emp ORDER BY sal DESC )e
  )
  SELECT ee.*
  FROM ee
  WHERE ee.rn>=5 AND ee.rn<=10
推薦教學:《

Oracle影片教學

以上是oracle分頁查詢原理是什麼的詳細內(nèi)容。更多資訊請關注PHP中文網(wǎng)其他相關文章!

本網(wǎng)站聲明
本文內(nèi)容由網(wǎng)友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發(fā)現(xiàn)涉嫌抄襲或侵權的內(nèi)容,請聯(lián)絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創(chuàng)建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發(fā)環(huán)境

Dreamweaver CS6

Dreamweaver CS6

視覺化網(wǎng)頁開發(fā)工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

Laravel 教程
1597
29
PHP教程
1488
72
怎樣卸載MySQL並清理殘留文件 怎樣卸載MySQL並清理殘留文件 Apr 29, 2025 pm 04:03 PM

要安全、徹底地卸載MySQL並清理所有殘留文件,需遵循以下步驟:1.停止MySQL服務;2.卸載MySQL軟件包;3.清理配置文件和數(shù)據(jù)目錄;4.驗證卸載是否徹底。

甲骨文在商業(yè)世界中的作用 甲骨文在商業(yè)世界中的作用 Apr 23, 2025 am 12:01 AM

Oracle不僅是數(shù)據(jù)庫公司,還是雲(yún)計算和ERP系統(tǒng)的領導者。 1.Oracle提供從數(shù)據(jù)庫到雲(yún)服務和ERP系統(tǒng)的全面解決方案。 2.OracleCloud挑戰(zhàn)AWS和Azure,提供IaaS、PaaS和SaaS服務。 3.Oracle的ERP系統(tǒng)如E-BusinessSuite和FusionApplications幫助企業(yè)優(yōu)化運營。

MongoDB vs. Oracle:為您的需求選擇正確的數(shù)據(jù)庫 MongoDB vs. Oracle:為您的需求選擇正確的數(shù)據(jù)庫 Apr 22, 2025 am 12:10 AM

MongoDB適合非結構化數(shù)據(jù)和高擴展性需求,Oracle適合需要嚴格數(shù)據(jù)一致性的場景。 1.MongoDB靈活存儲不同結構數(shù)據(jù),適合社交媒體和物聯(lián)網(wǎng)。 2.Oracle結構化數(shù)據(jù)模型確保數(shù)據(jù)完整性,適用於金融交易。 3.MongoDB通過分片橫向擴展,Oracle通過RAC縱向擴展。 4.MongoDB維護成本低,Oracle維護成本高但支持完善。

yi框架用什麼軟件比較好 yi框架使用軟件推薦 yi框架用什麼軟件比較好 yi框架使用軟件推薦 Apr 18, 2025 pm 11:03 PM

文章首段摘要:在選擇開發(fā) Yi 框架應用程序的軟件時,需要考慮多個因素。雖然原生移動應用程序開發(fā)工具(如 XCode 和 Android Studio)可以提供強大的控制和靈活性,但跨平臺框架(如 React Native 和 Flutter)憑藉其編寫一次,即可部署到多個平臺的優(yōu)點而越來越受歡迎。對於剛接觸移動開發(fā)的開發(fā)者,低代碼或無代碼平臺(如 AppSheet 和 Glide)可以快速輕鬆地構建應用程序。另外,雲(yún)服務提供商(如 AWS Amplify 和 Firebase)提供了全面的工具

MySQL與Oracle:許可,功能和福利 MySQL與Oracle:許可,功能和福利 May 08, 2025 am 12:05 AM

MySQL和Oracle的主要區(qū)別在於許可證、功能和優(yōu)勢。 1.許可證:MySQL提供GPL許可證,免費使用,Oracle採用專有許可證,價格昂貴。 2.功能:MySQL功能簡單,適合Web應用和中小型企業(yè),Oracle功能強大,適合大規(guī)模數(shù)據(jù)和復雜業(yè)務。 3.優(yōu)勢:MySQL開源免費,適合初創(chuàng)公司,Oracle性能可靠,適合大型企業(yè)。

MySQL和Oracle:探索性能和可伸縮性 MySQL和Oracle:探索性能和可伸縮性 Apr 29, 2025 am 12:12 AM

MySQL和Oracle在性能和可擴展性上的區(qū)別在於:1.MySQL在小型到中型數(shù)據(jù)集上表現(xiàn)更好,適合快速擴展和高效讀寫;2.Oracle在處理大型數(shù)據(jù)集和復雜查詢時更具優(yōu)勢,適合高可用性和復雜業(yè)務邏輯。 MySQL通過主從復制和分片技術實現(xiàn)擴展,而Oracle通過RAC實現(xiàn)高可用性和擴展性。

MySQL與Oracle:了解許可和成本 MySQL與Oracle:了解許可和成本 May 03, 2025 am 12:19 AM

MySQL採用GPL和商業(yè)許可,適合小型和開源項目;Oracle採用商業(yè)許可,適合需要高性能的企業(yè)。 MySQL的GPL許可免費,商業(yè)許可需付費;Oracle許可費用按處理器或用戶計算,成本較高。

怎麼學java不走彎路 高效學習Java的方法和技巧分享 怎麼學java不走彎路 高效學習Java的方法和技巧分享 May 20, 2025 pm 08:24 PM

學習Java不走彎路的關鍵是:1.理解核心概念和語法;2.多實踐;3.理解內(nèi)存管理和垃圾回收;4.加入在線社區(qū);5.閱讀別人的代碼;6.了解常見庫和框架;7.學習處理常見錯誤;8.制定學習計劃並循序漸進。這些方法能幫助你高效掌握Java編程。

See all articles