在Oracle的表的使用过程中,实际表中还有一些附加的列,称为伪列。
伪列就像表中的列一样,但是在表中并不存储。
伪列只能查询,不能进行增删改操作。

ROWNUM 与 ROWID 不同:
ROWID 是插入记录时生成, ROWID标识的是行的物理地址
ROWNUM 是查询数据时生成, ROWNUM标识的是查询结果中的行的次序

.

———————————-

——— ROWID ———

———————————-

.

  1. 表中的每一行在数据文件中都有一个物理地址,ROWID伪列返回的就是该行的物理地址。
  2. ROWID可以快速的定位表中的某一行。
  3. ROWID值可以唯一的标识表中的一行。
  4. ROWID返回的是该行的物理地址,因此使用ROWID可以显示行是如何存储的。

语法结构:删除重复数据,相同数据只保留一条

  1. DELETE FROM 表名 别名
  2. WHERE ROWID NOT IN (SELECT MIN(ROWID) FROM 表名 别名 GROUP BY 列名)

—————————————

——— ROWNUM ———

—————————————

.

在查询的结果集中,ROWNUM为结果集中每一行标识一个行号,
第一行返回1,第二行返回2,以此类推。
通过ROWNUM伪列可以限制查询结果集中返回的行数。
在查询条件中,如果查询条件中ROWNUM大于某一正整数,则不返还任何结果。

[例1] 查询出员工表中前5名员工的姓名,工作,工资

  1. SELECT ROWNUM, E.ENAME, E.JOB, E.SAL FROM EMP E WHERE ROWNUM <= 5;