Rownum和Rowid是Oracle數(shù)據(jù)庫(kù)中兩個(gè)不同的概念。
Rownum是一個(gè)偽列,它是在查詢結(jié)果中按順序分配的行號(hào)。Rownum是在查詢結(jié)果返回之后計(jì)算的,而不是在查詢時(shí)就確定的。它對(duì)應(yīng)的是查詢結(jié)果集中的行號(hào),而不是表中的實(shí)際物理行號(hào)。Rownum是用來(lái)篩選行的,比如可以使用Rownum來(lái)限制返回的行數(shù)。
Rowid是一個(gè)包含了行的物理地址信息的唯一標(biāo)識(shí)符。它是每一行在表中的唯一標(biāo)識(shí),可以用來(lái)直接訪問(wèn)表中的特定行。Rowid是在行插入時(shí)生成的,每次插入都會(huì)生成不同的Rowid。Rowid是用來(lái)定位表中的特定行的,比如可以使用Rowid來(lái)更新或刪除特定的行。
總的來(lái)說(shuō),Rownum是用來(lái)篩選行的,而Rowid是用來(lái)定位行的。它們之間的主要區(qū)別在于Rownum是在查詢結(jié)果中的行號(hào),而Rowid是行的物理地址唯一標(biāo)識(shí)。