oracle如何查询虚拟列,Oracle11g新特性之--虚拟列(VirtualColumn)

Oracle 11g引入了虚拟列,它允许基于表达式计算,不存储数据,可优化查询性能。虚拟列可用于select、update、delete的where条件,可建索引和分区,但不能直接更新。通过虚拟列,可以减少磁盘存储,提高计算效率。
摘要由CSDN通过智能技术生成

Oracle 11g新特性之--虚拟列(Virtual Column) Oracle 11G虚拟列Virtual Column介绍 在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图,如果我们需要在这个视图上使用索引,我们会创建基于函数的索引。 我们从 Oracle 官

Oracle 11g新特性之--虚拟列(Virtual Column)

Oracle 11G虚拟列Virtual Column介绍

在老的 Oracle 版本,当我们需要使用表达式或者一些计算公式时,我们会创建数据库视图,如果我们需要在这个视图上使用索引,我们会创建基于函数的索引。

我们从Oracle官方文档中,找到下面对于虚拟列技术的描述。

“Tables can also include virtual columns. A virtual column is like any other table column, except that its value is derived by evaluating an expression. The expression can include columns from the same table, constants, SQL functions, and user-defined PL/SQL functions. You cannot explicitly write to a virtual column.”

Oracle 11G 在表中引入了虚拟列,虚拟列是一个表达式,在运行时计算,不存储在数据库中,不能更新虚拟列的值。

定义一个虚拟列的语法:

7580beb3cafb898e531cd6326f04fae7.png

28ad5b792d88bca2cb0cc40aeba62c24.png

column_name [datatype] [GENERATED ALWAYS] AS [expression] [VIRTUAL]

1.虚拟列可以用在select,update,delete语句的where条件中,但是不能用于DML语句

2.可以基于虚拟列来做分区

3. 可以在虚拟列上建索引,oracle的函数索引就类似。

4. 可以在虚拟列上建约束

案例:

1、创建一个带虚拟列的表:14:51:28 SCOTT@ test1 >CREATE TABLE EMP3

14:51:51 2 (

14:51:51 3 EMPNO NUMBER(6),

14:51:51 4 SAL NUMBER(8,2),

14:51:51 5 COMM NUMBER(8,2),

14:51:51 6 SAL_PACK GENERATED ALWAYS AS ( SAL + NVL(COMM,0) ) VIRTUAL

14:51:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值