Oracle SQL 中的伪列
伪列:伪列的行为类似于表列,但实际上并未存储在表中。您可以从伪列中进行选择,但不能插入、更新或删除它们的值。伪列也类似于没有参数的函数。本节介绍这些伪列:
- CURRVAL 和 NEXTVAL
- 等级
- ROWID
- 行号
1. CURRVAL 和 NEXTVAL:序列是可以生成唯一序列值的模式对象。这些值通常用于主键和唯一键。您可以使用这些伪列引用 SQL 语句中的序列值:
- CURRVAL :返回序列的当前值。
- NEXTVAL :增加序列并返回下一个值。
例子:
从 DUAL 中选择 STUDENTSEQ.currval;
插入学生价值观(STUDENTSEQ.nextval,'BISHAL',' Java',7902);
2. LEVEL:对于分层查询返回的每一行,LEVEL 伪列为根节点返回 1,为根节点的子节点返回 2,依此类推。
3、ROWNUM: Oracle引擎维护用户在表中插入的每条记录的数量。借助 ROWNUM 子句,我们可以根据插入的记录访问数据。
例子:
SELECT * FROM EMP WHERE ROWNUM <= 3;
4. ROWID:对于数据库中的每一行,ROWID 伪列返回一行的地址。 ROWID 包含 3 个关于行地址的信息:
- FileNo : FileNo 表示表号。
- DataBlockNo : DataBlockNo 表示oracle SQL 引擎分配的用于保存记录的空间。
- RecordNo : Oracle 引擎维护每条记录的记录号。
例子:
SELECT ROWID, ename FROM emp WHERE deptno = 20;