oracle视图的详细视图
一个视图实际上是一个查询的SQL语句,它是用来在一个或多个表或其他视图显示相关数据。视图使用一个查询的结果作为一个表,所以可以看作一个存储的查询或一个虚拟表。视图是从表,并向查看数据的所有修改,最终将反映在视图的基表。这些修改必须遵循基表的完整性约束,并触发在基表上定义的触发器(Oracle支持对触发器的显式定义和视图上的一些逻辑约束)。
2。查看存储
不同的表,视图不需要存储空间的分配,和视图不包含实际的数据,视图定义只作为查询和视图中的数据是从基表中获得,动态生成引用视图时,视图是基于在数据库中的其他对象,视图只占在数据字典中定义的空间,而无需额外的存储空间。
3的作用。看法
用户可以以不同的方式显示基表中的数据,视图的优点是可以根据不同用户的需求组织基表中的数据:
该表通过设置允许用户访问的列和数据行,为表提供了额外的安全性控制。
隐藏数据的复杂性
连接(连接)可以在视图中使用与多个表相关联的列形成一组新数据。
U3000
简化用户的SQL语句
用户可以使用视图从多个表中查询信息,而不知道这些表是如何连接的。
U3000
以不同的角度显示基表中的数据
视图的列名可以随意更改,而不会影响此视图的基表。
U3000
应用程序的效果不受基表定义的更改的影响。
包含4个数据列的基表中的3列在视图的定义中被查询。当一个新列添加到基表时,使用此视图的应用程序不会受到影响,因为视图的定义不会受到影响。
U3000
保存复杂查询
查询可能是表数据的复杂计算。在用户将查询保存为视图之后,每次执行相似计算时只需查询此视图。
逻辑数据独立性
视图可以使应用程序和数据库表在一定程度上独立。如果没有视图,应用程序必须建立在表上。视图可以将程序建立在视图的顶部,以便将程序和数据库表与视图分开。
4的工作机制。看法
视图的定义是它使用的查询语句,Oracle以数据字典中的文本形式存储这个定义:
将视图的语句与视图的定义语句合并为一个语句
解析和集成共享SQL区域中的语句
执行该语句
当现有的共享SQL区域与合并语句不一致时,Oracle将为该语句创建一个新的共享SQL区域。因此,引用视图的SQL语句也可以使用现有的共享SQL区域来实现节省内存和提高性能的目的。
5的依赖性。意见
因为视图的定义是引用其他对象(表、视图)的查询,视图取决于它引用的对象。Oracle自动处理视图的依赖性。例如,当用户删除视图的基表时,它会重新生成表。Oracle将检查新基表是否符合视图的定义,并确定视图的有效性。
6。可更新的连接视图
查看连接是指一个数,在从一个视图的定义查询语句引用的表或视图。视图是可更新的连接的连接视图可以执行更新、插入和删除操作。为了确保视图是可再生的,下面的语法可以不包括在其定义:
集合操作
不同的算子
凝聚函数或解析函数
按顺序、按顺序、连接或开始
选择后使用列表中的集合表达式
使用子查询的选择列表后
连接(连接)(但有例外)
对于不可更新的视图,可以使用触发器来修改其数据。