Oracle伪列
1.Oracle的伪列是Oracle表在存储的过程中或查询的过程中,表会有一些附 加列,称为伪列。
2.伪列就像表中的字段一样,但是表中并不存储。
3.伪列只能查询,不能增删改。
4.Oracle的伪列有:rowid、rownum。
Oracle rowid
1、Oracle表中的每一行在数据文件中都有一个物理地址, rowid 伪列返回的就是该行的物理地址。
2、使用 rowid 可以快速的定位表中的某一行。
3、rowid 值可以唯一的标识表中的一行。
4、通过 select 查询出来的rowid ,返回的就是该行数据的物理地址。
select t.*,t.rowid from stuinfo t ;
结果如下:
select t.*,t.rowid from stuinfo t where t.rowid='AAAShjAAEAAAAEFAAD';
结果如下:
Oracle rownum
1、Oracle rownum表示的Oracle查询结果集的顺序,rownum为每个查询结果集的行标识一个行号,第一行返回1,第二行返回2,依次顺序递增。
2、rownum与 rowid不同, rowid是插入记录时生成, rownum是查询数据时生成。
3、rowid标识的是行的物理地址。 rownum标识的是查询结果中的行的次序。
4、rownum经常用来限制查询的结果返回的行数,求前几行或前几名的数据。
select t.stuid,t.stuname,t.sex,t.classno,t.stuaddress ,rownum from stuinfo t ;
结果如下:
返回学生信息表中(stuinfo)中学生年龄最低的前四位同学:
select *
from (select t.stuid,
t.stuname,
t.sex,
t.classno,
t.stuaddress,
t.age,
rownum
from stuinfo t
order by t.age asc)
where rownum <= 4;
结果如下: