Oracle11g虚拟列应用

2022-10-16 版权声明 我要投稿

虚拟列是oracle11g提出的新特性。在oracle数据库中, 数据总是以表的形式存放的, 表的每一个列存放对应实体的属性值, 这种列我们称之为真实列。而虚拟列的数据不存放在数据文件中, 它的值是在查询的时候通过真实列值计算而来, 其结构存放于数据字典中。

1 老版本oracle数据库处理需要存放结构但不存放数据值的方法

在oracle11g以前的版本中, 如果需要使用表达式或者是对一些列进行计算的时候, 一般会创建数据库视图来实现。

例如:存在这样一个表 (Employees) 的表结构:

Employees表的物理实现:

当表物理实现后, 向表添加数据:

Insert into Employees values (‘110015101’, ’marry’, 800, 90) ;

如果要存储所有员工的实际收入, 可以创建视图来实现。

查询所有员工实际收入。

2 oracle11g处理需要存放结构但不存放数据值的方法

在oracle11g中, 引入了虚拟列来存放需要计算的数据。

Employees表的物理实现:

当表物理实现后, 向表添加数据。虚拟列不存放在数据文件中, 而是在查询的时候根据定义的表达式计算所得, 在插入数据的时候, 不能显示的向该列插入数据。所以应该显示的向其他列添加数据:

查询所有员工实际收入。

S e l e c t E m p l o y e e_i d, E m p l o y e e_n a m e, Employee_income from Employees;

两种方法都可以实现需要存放结构但不存放数据值事件, 但是虚拟列的实现明显比视图简单很多。

3 虚拟列的其他应用

3.1 虚拟列的索引和约束:

在创建表的时候, 索引和约束也可以应用在虚拟列上面。

例如在Employees表上面创建索引:

Create index sal_idx on Employees (Employee_income) ;

同样可以为虚拟列创建外键。

3.2 使用PL/SQL函数处理虚拟列:

虚拟列可以使用Oracle自带的函数, 也可以使用用户定义的函数, 不过对于用户定义的函数要求必须声明函数的确定性。

结束语:

Oracle11g引入了很多新的特性, 掌握并适当的应用, 可以帮助我们更为方便和简单的管理和使用数据库数据。

摘要:ORACLE数据库是目前世界上使用最为广泛的数据库管理系统, 作为一个通用的数据库系统, 它具有完整的数据管理功能;作为一个关系数据库, 它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识, 只要在一种机型上学习了ORACLE知识, 便能在各种类型的机器上使用它。oracle11g数据库相对于以前的oracle数据库版本增加了一些新的特性, 虚拟列就是其中的一项。本文重点介绍虚拟列的工作原理及其应用。

关键词:oracle11g,虚拟列

参考文献

[1] 王彬Oracle11g基础与提高[M]电子工业出版社2008

[2] 王珊萨师煊数据库系统概论[M]高等教育出版社2006

[3] 苗雪兰刘瑞新王怀峰数据库系统及应用教程[M]机械工业出版社2001

注:本文为网友上传,旨在传播知识,不代表本站观点,与本站立场无关。若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:iwenmi@163.com。举报文章