伪列
所谓伪列,是指它可用select查询,但实际并未存储在表中,它是由数据库管理系统额外提供的一个列,该列不能插入、更新和删除。
ROWID
在Oracle中,每行记录都有一个行标识符,其列名为rowid。该列存储了对应行记录的物理存储位置。 rowid可用在select语句中,显示的结果是采用base-64编码的18位字符。(A~Z,a~z,0~9,+,/)
ROWNUM
rownum也是一个伪列,它返回每一行记录在结果集中的行号。
--从customers表中检索每行记录的行标识符和行号
select cst.*,rowid,rownum from customers cst;
--若需要select *,则需要在*前边加表格限定名;rowid和rownum伪列,则不能加限定名
执行结果:
利用rownum实现分页功能
--分页功能 第一页
select * from customers where rownum < 3;
--分页功能 第二页(rownum不能加temp限定名,所以必须取别名rn)
select temp.*
from (select cst.*, rownum rn from customers cst) temp
where temp.rn > 2
and temp.rn < 5;
执行结果: