• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    Oracle中rowid和rownum簡介

    發布時間:  2012/9/17 16:47:28

    問題:Oracle將ROWID和ROWNUM區別開了嗎?如果他們有區別,那么他們的區別是什么呢?

    回答:正如你的地址唯一的標識了你的住處,一個Oracle的rowid唯一的標識了一條數據的物理地址。
    rowid提供了你找到這一行數據所需要的所有信息,硬盤號,柱面,塊和所在塊上的偏移地址。
    rownum是一個偽碼,一個你可以在SQL*Plus中引用的占位符。rownum可以用于書寫專業的sql語句和調整sql。-
     


    在sql語句中使用rownum要注意:
    正確:where rownum<n;
          where rownum=1;
    錯誤:where rownum>n;
          where rownum=some_num>1
    如果你非得這么寫的話,這樣才正確:
          select * from(
            select rownum rn,t.*  from t
          )
          where rn=3;

    例如,為了顯示前5條數據,你可以用rownum作為過濾器:
    SQL> select rownum,emp.empno,emp.ename,emp.job from emp
      2  where rownum<=5;

        ROWNUM EMPNO ENAME      JOB
    ---------- ----- ---------- ---------
             1  7369 SMITH      CLERK
             2  7499 ALLEN      SALESMAN
             3  7521 WARD       SALESMAN
             4  7566 JONES      MANAGER
             5  7654 MARTIN     SALESMAN

    總之,rowid和rownum的區別是rownum是暫時的而rowid是永久的。
    另外,rowid可以用來獲取一個數據行,rowid僅僅在單個sql語句內容里面有意義,一種參照取出的數據集的方式。

    SQL> select rownum,rowid,empno,initcap(ename),initcap(job),sal from emp;

        ROWNUM ROWID              EMPNO INITCAP(ENAME) INITCAP(JOB)       SAL
    ---------- ------------------ ----- -------------- ------------ ---------
             1 AAAL+ZAAEAAAAAdAAA  7369 Smith          Clerk           800.00
             2 AAAL+ZAAEAAAAAdAAB  7499 Allen          Salesman       1600.00
             3 AAAL+ZAAEAAAAAdAAC  7521 Ward           Salesman       1250.00
             4 AAAL+ZAAEAAAAAdAAD  7566 Jones          Manager        2975.00
             5 AAAL+ZAAEAAAAAdAAE  7654 Martin         Salesman       1250.00
             6 AAAL+ZAAEAAAAAdAAF  7698 Blake          Manager        2850.00
             7 AAAL+ZAAEAAAAAdAAG  7782 Clark          Manager        2450.00
             8 AAAL+ZAAEAAAAAdAAH  7788 Scott          Analyst        3000.00
             9 AAAL+ZAAEAAAAAdAAI  7839 King           President      5000.00
            10 AAAL+ZAAEAAAAAdAAJ  7844 Turner         Salesman       1500.00
            11 AAAL+ZAAEAAAAAdAAK  7876 Adams          Clerk          1100.00
            12 AAAL+ZAAEAAAAAdAAL  7900 James          Clerk           950.00
            13 AAAL+ZAAEAAAAAdAAM  7902 Ford           Analyst        3000.00
            14 AAAL+ZAAEAAAAAdAAN  7934 Miller         Clerk          1300.00

     


    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線