Oracle基礎(chǔ)知識:偽列rownum,偽列就像表中的列一樣,但是在表中并不存儲。偽列只能查詢,不能進(jìn)行增刪改操作。
創(chuàng)新互聯(lián)建站專注于企業(yè)成都營銷網(wǎng)站建設(shè)、網(wǎng)站重做改版、洛隆網(wǎng)站定制設(shè)計(jì)、自適應(yīng)品牌網(wǎng)站建設(shè)、成都h5網(wǎng)站建設(shè)、成都商城網(wǎng)站開發(fā)、集團(tuán)公司官網(wǎng)建設(shè)、成都外貿(mào)網(wǎng)站制作、高端網(wǎng)站制作、響應(yīng)式網(wǎng)頁設(shè)計(jì)等建站業(yè)務(wù),價(jià)格優(yōu)惠性價(jià)比高,為洛隆等各大城市提供網(wǎng)站開發(fā)制作服務(wù)。
在查詢的結(jié)果集中,ROWNUM為結(jié)果集中每一行標(biāo)識一個(gè)行號,第一行返回1,第二行返回2,以此類推。通過ROWNUM偽列可以限制查詢結(jié)果集中返回的行數(shù)。ROWNUM與ROWID不同,ROWID是插入記錄時(shí)生成,ROWNUM是查詢數(shù)據(jù)時(shí)生成。ROWID標(biāo)識的是行的物理地址。ROWNUM標(biāo)識的是查詢結(jié)果中的行的次序。
select *
from (select tab.*, rownum as rk from tab order by 單價(jià) desc) t
where rk between 6 and 10
最常用的有rownum和rowid
ROWNUM偽列是Oracle首先進(jìn)行查詢獲取到結(jié)果集之后在加上去的一個(gè)偽列,這個(gè)偽列對符合條件的結(jié)果添加一個(gè)從1開始的序列號
ROWID是一種數(shù)據(jù)類型,它使用基于64為編碼的18個(gè)字符來唯一標(biāo)識一條記錄物理位置的一個(gè)ID,類似于Java中一個(gè)對象的哈希碼,都是為了唯一標(biāo)識對應(yīng)對象的物理位置,需要注意的是ROWID雖然可以在表中進(jìn)行查詢,但是其值并未存儲在表中,所以不支持增刪改操作
比如,oracle常用分頁方法:SELECT * FROM (SELECT ROWNUM nums,emp.* FROM emp) WHERE nums 5 AND nums = 10;