- rowid
rowid 是 oracle 中的伪列。可以通过下面语句显示:
select d.rowid, d.* from dept d
它是唯一的,不可变的,固定长度的。
它是数据存储物理地址的一种映射。一共有18位,前6位表示对象id,后3位表示fno,后6位表示块编号,最后3位表示行编号。 所以,通过rowid可以最快速度地定位到数据所在的位置。
比如,如果某行数据的 rowid 是
AAAO0fAAFAAAAlmAAA
, 那么可以根据它直接定位数据的物理地址:AAAO0f AAF AAAAlm AAA 对象号(6个字符) 文件号(3个字符) 块号(6个字符) 行号(3个字符) rowid 是 oracle 特有的。
不建议使用 rowid 作为表的主键。迁移的需求,有改变的风险。
- rownum
列出每一行数据的行数,从1开始,自然增长。
-- 基本用法 select rownum, d.* from dept; select rownum, d.* from dept d where rownum < 3; -- 显示前两条 select * from (select rownum rn, d.* from dept d) t where t.rn = 3; -- 只显示第三条 select * from (select * from emp order by sal desc) where rownum<=3; -- 显示 emp 表中工资前三位的雇员信息。
伪列
最新推荐文章于 2023-05-26 15:53:58 发布