对于数据库中的每一行,都有一个叫ROWID的伪列(Pseudocolumn,伪列即不存储在表中,但是像一个表的列,这个列不能insert、update、delete),
用于标记记录物理位置的一个ID,所以ROWID最大的作用就是快速定位记录。
ROWID的组成
ROWID字段由18个字符组成,如: OOOOOOFFFBBBBBBRRR
OOOOOO表示数据库对象编号
FFF表空间中的数据文件编号
BBBBBB存储记录的数据块的编号
RRR标示同一数据块中不同的记录
样例:AAAAVJAAEAAAABEAAA
SELECT ROWID, ENAME
FROM EMP
WHERE EMPNO = 7369;
Output:
ROWID ENAME
AAAR3sAAEAAAACXAAA SMITH
ROWID是否可以用在Where条件中
ROWID可以作为WHERE条件来查询记录,但因为记录物理位置是可能发生变化的,所以在程序中用ROWID查询数据是一个不靠谱的事情。
SELECT * FROM EMP WHERE ROWID = 'AAAR3sAAEAAAACXAAA'