




下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、Oracle開發(fā)實(shí)戰(zhàn)經(jīng)典第13章:其它數(shù)據(jù)庫對象 Oracle偽列北京魔樂科技軟件學(xué)院李興華本章目標(biāo)了解ROWID的主要作用;掌握ROWNUM的使用,并且可以利用ROWNUM實(shí)現(xiàn)數(shù)據(jù)分頁;掌握Oracle 12C中的FETCH使用。Oracle偽列在Oracle數(shù)據(jù)庫之中為了實(shí)現(xiàn)完整的關(guān)系數(shù)據(jù)庫的功能,專門為用戶提供了許多的偽列,像之前在講解序列時所使用的“NEXTVAL”和“CURRVAL”就是兩個默認(rèn)提供的操作偽列同時在之前使用的SYSDATE與SYSTIMESTAMP也屬于偽列(而想查詢使用的DUAL稱為偽表),這些數(shù)據(jù)偽列并不是用戶在建立數(shù)據(jù)庫對象時由用戶完成的,而是Oracle自動幫
2、助用戶建立的,用戶只需要按照要求使用即可,但是除了“NEXTVAL”和“CURRVAL”兩個偽列之外,還提供了兩個重要的偽列:ROWNUM、ROWID。ROWID偽列在數(shù)據(jù)表中每一行所保存的記錄,實(shí)際上Oracle都會默認(rèn)為每條記錄分配一個唯一的地址編號,而這個地址編號就是通過ROWID進(jìn)行表示的, ROWID本身是一個數(shù)據(jù)的偽列,所有的數(shù)據(jù)都利用ROWID進(jìn)行數(shù)據(jù)定位。Oracle偽列 范例觀察ROWID的存在SELECT ROWID,deptno,dname,loc FROM dept ;ROWID組成:數(shù)據(jù)對象號(data object number)為AAAWec;相對文件號(rela
3、tive file number)為AAG;數(shù)據(jù)塊號(block number)為AAAAC2;數(shù)據(jù)行號(row number)為AAA;ROWID的操作函數(shù)No.函數(shù)名稱描述1DBMS_ROWID.rowid_object(ROWID)從一個ROWID之中,取得數(shù)據(jù)對象號2DBMS_ROWID.rowid_relative_fno(ROWID)從一個ROWID之中,取得相對文件號3DBMS_ROWID.rowid_block_number(ROWID)從一個ROWID之中,取得數(shù)據(jù)塊號4DBMS_ROWID.rowid_row_number(ROWID)從一個ROWID之中,取得數(shù)據(jù)行號Or
4、acle偽列 范例拆分ROWID,取數(shù)據(jù)SELECT ROWID ,DBMS_ROWID.rowid_object(ROWID) 數(shù)據(jù)對象號 ,DBMS_ROWID.rowid_relative_fno(ROWID) 相對文件號 ,DBMS_ROWID.rowid_block_number(ROWID) 數(shù)據(jù)塊號 ,DBMS_ROWID.rowid_row_number(ROWID) 數(shù)據(jù)行號,deptno,dname,loc FROM dept ;ROWNUM偽列ROWNUM表示的是一個數(shù)據(jù)行編號的偽列,它的內(nèi)容是在用戶查詢數(shù)據(jù)的時候,為用戶動態(tài)分配的一個數(shù)字(行號),下面首先通過如下的程序
5、來觀察一下ROWNUM的主要作用。Oracle偽列 范例查詢雇員編號、姓名、職位、基本工資、雇傭日期等信息并且顯示每條記錄的行號SELECT ROWNUM,empno,ename,job,sal,hiredate FROM emp ;Oracle偽列 范例查詢30部門的雇員編號、姓名、職位、基本工資、雇傭日期等信息并且顯示每條記錄的行號SELECT ROWNUM,empno,ename,job,sal,hiredate FROM emp WHERE deptno=30 ;Oracle偽列 范例列出薪金高于公司平均薪金的所有員工編號、姓名、基本工資、職位、雇傭日期,所在部門名稱、位置,公司的工資
6、等級,但是為了信息瀏覽方便,要求在每一行數(shù)據(jù)顯示前都增加一個行號。SELECT ROWNUM rn,e.empno,e.ename,e.sal,e.job,e.hiredate,d.dname,d.loc,s.gradeFROM emp e,dept d,salgrade sWHERE e.sal ( SELECT AVG(sal) FROM emp) AND e.deptno=d.deptno AND e.sal BETWEEN s.losal AND s.hisal ;ROWNUM作用ROWNUM除了可以自動的進(jìn)行行號的顯示之外,也可以完成以下兩個常用操作:操作一:取出一個查詢的第一行記錄
7、;操作二:取出一個查詢的前N行記錄;Oracle偽列 范例查詢emp表中的第一行雇員信息SELECT * FROM emp WHERE ROWNUM=1 ;數(shù)據(jù)的分頁顯示分頁操作組成:數(shù)據(jù)顯示部分:主要是從數(shù)據(jù)表之中選出指定的部分?jǐn)?shù)據(jù),需要ROWNUM偽列才可以完成;分頁控制部分:留給用戶的控制端,用戶只需要選擇指定的頁數(shù),那么應(yīng)用程序就會根據(jù)用戶的選擇,列出指定的部分?jǐn)?shù)據(jù),相當(dāng)于控制了格式中的currentPage;分頁操作語法:SELECT * FROM (SELECT 列1 ,列2,.,ROWNUM rownum別名FROM 表名稱 別名WHERE ROWNUM (currentPage
8、(當(dāng)前所在頁) - 1) * lineSize(每頁顯示記錄行數(shù)) ;使用ROWNUM進(jìn)行前N行數(shù)據(jù)查詢的分析查詢第一頁數(shù)據(jù)查詢第二頁數(shù)據(jù)Oracle偽列 范例顯示雇員表中前5條記錄SELECT * FROM (SELECT empno,ename,job,hiredate,sal,mgr,deptno,ROWNUM rn FROM emp WHERE ROWNUM0 ;Oracle偽列 范例顯示雇員表中的610條記錄SELECT * FROM (SELECT empno,ename,job,hiredate,sal,mgr,deptno,ROWNUM rn FROM emp WHERE RO
9、WNUM5 ;Oracle 12C新特性 FETCH在Oracle 12C之中為了方便數(shù)據(jù)的分頁顯示操作,專門提供了FETCH語句,使用此語句可以方便的取得指定范圍內(nèi)的操作數(shù)據(jù)。FETCH語句語法SELECT DISTINCT 分組字段1 AS 列別名 , 分組字段2 AS 列別名 , FROM 表名稱1 表別名1 , 表名稱2 表別名2 .WHERE 條件(s) GROUP BY 分組字段1 , 分組字段2 , .HAVING 過濾條件(s)ORDER BY 排序字段 ASC|DESC FETCH FIRST 行數(shù) | OFFSET 開始位置 ROWS FETCH NEXT 個數(shù) | FET
10、CH NEXT 百分比 PERCENT ROW ONLY此語句有三種使用方式:取得前N行紀(jì)錄:FETCH FIRST 行數(shù) ROW ONLY;取得指定范圍的紀(jì)錄:OFFSET 開始位置 ROWS FETCH NEXT 個數(shù) ROWS ONLY;按照百分比取得紀(jì)錄:FETCH NEXT 百分比 PERCENT ROWS ONLY。Oracle偽列 范例取得emp表中的前5行紀(jì)錄SELECT * FROM emp FETCH FIRST 5 ROW ONLY;Oracle偽列 范例為數(shù)據(jù)排序,取得前5行紀(jì)錄SELECT * FROM emp ORDER BY sal DESC FETCH FIRST 5 ROW ONLY;Oracle偽列 范例取得表中45條紀(jì)錄SELECT * FROM emp ORDER BY sal DESC OFFSET 3 ROWS FETCH NEXT 2 ROWS O
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025《江寧建筑勞務(wù)合同》
- 2025自然人借款合同模板
- 2025家庭電路改造合同協(xié)議書
- 2025年建筑用木料及加工木材組件項(xiàng)目合作計(jì)劃書
- 2025物業(yè)管理簡易勞動合同說明及范本
- 2025廣告策劃委托合同樣本格式
- 2025附條件購買合同范本
- 2025年鉻系鐵合金項(xiàng)目合作計(jì)劃書
- 2025年防洪設(shè)施管理服務(wù)項(xiàng)目建議書
- 2025辦公家具買賣合同范本
- 2024年5月廣東省公務(wù)員考試公安聯(lián)考結(jié)構(gòu)化面試真題試題試卷答案解析
- 2025-2030中國醫(yī)療領(lǐng)域的射頻識別設(shè)備(RFID)行業(yè)市場發(fā)展趨勢與前景展望戰(zhàn)略研究報告
- 2025至2030中國車載OLED屏市場未來前景展望及運(yùn)行態(tài)勢剖析報告
- 2024-2025學(xué)年八年級下學(xué)期道德與法治期中模擬試卷(二)(統(tǒng)編版含答案解析)
- 2025-2030中國生物醫(yī)藥行業(yè)市場深度調(diào)研及發(fā)展趨勢與投資前景預(yù)測研究報告
- 貿(mào)易公司員工管理制度
- 專利代理師高頻題庫新版2025
- 肝硬化護(hù)理新進(jìn)展
- 武安市公安局招聘警務(wù)輔助人員筆試真題2024
- 2025年全國國家版圖知識競賽題庫及答案(中小學(xué)組)
- DB15-T 1339-2025 風(fēng)電場機(jī)組布置技術(shù)規(guī)范
評論
0/150
提交評論