在Oracle的表的使用过程中,实际表中还有一些附加的列,称为伪列。
伪列就像表中的列一样,但是在表中并不存储。
伪列只能查询,不能进行增删改操作。
ROWNUM 与 ROWID 不同:
ROWID 是插入记录时生成, ROWID标识的是行的物理地址
ROWNUM 是查询数据时生成, ROWNUM标识的是查询结果中的行的次序
.
———————————-
——— ROWID ———
———————————-
.
- 表中的每一行在数据文件中都有一个物理地址,ROWID伪列返回的就是该行的物理地址。
- ROWID可以快速的定位表中的某一行。
- ROWID值可以唯一的标识表中的一行。
- ROWID返回的是该行的物理地址,因此使用ROWID可以显示行是如何存储的。
语法结构:删除重复数据,相同数据只保留一条
DELETE FROM 表名 别名WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM 表名 别名 GROUP BY 列名)
—————————————
——— ROWNUM ———
—————————————
.
在查询的结果集中,ROWNUM为结果集中每一行标识一个行号,
第一行返回1,第二行返回2,以此类推。
通过ROWNUM伪列可以限制查询结果集中返回的行数。
在查询条件中,如果查询条件中ROWNUM大于某一正整数,则不返还任何结果。
[例1] 查询出员工表中前5名员工的姓名,工作,工资
SELECT ROWNUM, E.ENAME, E.JOB, E.SAL FROM EMP E WHERE ROWNUM <= 5;
