Oracle Database SQL Language Reference 笔记(2)—— 伪列(Pseudocolumn)

本文介绍了Oracle数据库中伪列的概念和特点,特别是与树状结构查询和序列对象相关的伪列。通过示例详细解释了如何使用伪列`CONNECT_BY_ISCYCLE`、`CONNECT_BY_ISLEAF`和`LEVEL`来处理树状结构数据,以及`CURRVAL`和`NEXTVAL`在序列操作中的应用。
摘要由CSDN通过智能技术生成

Oracle 数据库的SQL语言中经常用到一些伪列,这些伪列为数据管理提供了方便。其中咱们见得最多的应该是 rownum 和 rowid

1、伪列的特点和种类

  • 伪列没有实际保存在数据表中。
  • 可以对伪列执行 select 操作,但不能 insert 、update或者delete 它们。
  • 它与不带参数的function的区别在于,伪列对每一行数据返回不同的值,而不带参数的function一般对所有行返回同一个值。

种类:

  • 与树状结构查询语句相关的伪列(包括 CONNECT_BY_ISCYCLE、CONNECT_BY_ISLEAF 和 LEVEL);
  • 与序列对象相关的伪列(CURRVAL和NEXTVAL);
  • 与版本控制相关的伪列(VERSIONS_STARTSCN、VERSIONS_STARTTIME、VERSIONS_ENDSCN、VERSIONS_ENDTIME、VERSIONS_XID、VERSIONS_OPERATION);
  • 与嵌套表数据相关的伪列(COLUMN_VALUE);
  • 与对象数据表相关的伪列(OBJECT_ID、OBJECT_VALUE);
  • 与数据行相关的伪列(ORA_ROWSCN、ROWID、ROWNUM)。


2、与树状结构查询语句相关的伪列

首先对树状结构查询进行说明,其语法结构是

Select ... start with ... connect by ... prior,即:

能够进行树状结构查询的数据表,一般都会有个指向自身主键的外键,以此体现出隶属关系

Oracle 提供的示例中,HR模式中的 employees 便是此类数据表,该表结构如下:


hr@ORA11G> desc employees;

 Name Null? Type
 ---------------------------------------- -------- ------------------------------------
 EMPLOYEE_ID NOT NULL NUMBER(6)
 FIRST_NAME VARCHAR2(20)
 LAST_NAME NOT NULL VARCHAR2(25)
 EMAIL NOT NULL VARCHAR2(25)
 PHONE_NUMBER VARCHAR2(20)
 HIRE_DATE NOT NULL DATE
 JOB_ID       NOT NULL VARCHAR2(10)
 SALARY NUMBER(8,2)
 COMMISSION_PCT NUMBER(2,2)
 MANAGER_ID NUMBER(6)
 DEPARTMENT_ID NUMBER(4)


其中,Employee_id 是主键,而 Manager_id 则以 Employee_id 为外键。

我们仅考虑其中的 Employee_id、Last_name 和 Manager_id 三项数据,部分数据如下:


EMPLOYEE_ID LAST_NAMEMANAGER
----------- ------------------------- ----------
100 King
101 Kochhar    100
102 De Haan    100
103 Hunold    102
104 Ernst    103
105 Austin    103
106 Pataballa    103
107 Lorentz    103

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值