|  
  問題:Oracle將ROWID和ROWNUM區(qū)別開了嗎?如果他們有區(qū)別,那么他們的區(qū)別是什么呢? 
回答:正如你的地址唯一的標(biāo)識了你的住處,一個(gè)Oracle的rowid唯一的標(biāo)識了一條數(shù)據(jù)的物理地址。 
rowid提供了你找到這一行數(shù)據(jù)所需要的所有信息,硬盤號,柱面,塊和所在塊上的偏移地址。 
rownum是一個(gè)偽碼,一個(gè)你可以在SQL*Plus中引用的占位符。rownum可以用于書寫專業(yè)的sql語句和調(diào)整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條數(shù)據(jù),你可以用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的區(qū)別是rownum是暫時(shí)的而rowid是永久的。 
另外,rowid可以用來獲取一個(gè)數(shù)據(jù)行,rowid僅僅在單個(gè)sql語句內(nèi)容里面有意義,一種參照取出的數(shù)據(jù)集的方式。 
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.cmtents.com】 
      
      
		服務(wù)器租用/服務(wù)器托管中國五強(qiáng)!虛擬主機(jī)域名注冊頂級提供商!15年品質(zhì)保障!--億恩科技[ENKJ.COM] 
       |