📜  Oracle SQL 中的伪列

📅  最后修改于: 2022-05-13 01:55:07.109000             🧑  作者: Mango

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;