视图
视图是一种虚拟对象,它是从一个或多个基表或其他视图中导出来的表。视图中的数据来自于它所引用的基表或视图,称为视图的基表。
视图的主要特点有:
-
虚拟对象:视图不是真正存放数据的物理结构,它只保存与基表相关的查询语句。
-
可更新或只读:视图可以是可更新的也可以是只读的,这依赖于它引用的基表和查询。
-
简化查询:可以使用视图简化复杂的查询,通过创建记录汇总或提取指定列数据的视图简化查询。
-
保护数据:视图可以使用户只能访问允许的记录或允许的记录列,保护基表中的数据。
-
提高性能:视图可以重写语句的解析和执行过程,改写成对基本表的更有效的检索方式,提高性能。
-
可嵌套:一个视图可以引用另一个视图。
-
具有表的特征:视图具有许多表的特征,如具有列、行、数据类型和一定的存储属性等。可以对应用程序透明地替代表。
视图的主要用途有:
-
重构数据:从一个或多个表中重构数据,以便于查询和显示。
-
聚集数据:从多个表中聚集数据,提供一个统一的视图。
-
保护数据:隐藏敏感数据或限制访问权限。
-
提高性能:使用视图重写查询可以提供更高效的检索方式。
-
简化查询:使用视图可以隐藏表结构的复杂性,简化查询。
视图的创建和管理主要包括:
-
创建视图:使用CREATE VIEW语句创建视图,定义查询以指定要导出的记录和列。
-
修改视图:使用CREATE OR REPLACE VIEW或ALTER VIEW修改视图的查询或属性。
-
删除视图:使用DROP VIEW语句删除视图。
-
查询视图:使用SELECT语句从视图中查询记录,就像查询表一样。
-
权限管理:需要授予对象权限使用户可以查询、插入、修改或删除视图。
视图是Oracle数据库中的虚拟对象,它简化了查询,保护了数据,提高了性能。视图具有表的大部分特征,使用和表基本相同,但它保存的只是查询语句,不保存实际的数据。
要熟练使用视图,需要理解:
-
视图与基表的关系,它们共享的数据来源。
-
视图的存储表示及其只保存查询语句这一概念。
-
视图的种类:可更新视图与只读视图。可更新视图依赖于其基表和查询。
-
视图的各种用途,以及不同用途下的应用场景。
-
操作视图与操作表的区别。如在视图上无法执行TRUNCATE TABLE等。
-
视图层次,一个视图的基表可以是其他视图。
-
权限管理的注意事项。需要授予对象权限才可以使用视图。
要在实践中熟练使用视图,仅理解概念是不够的。需要亲自动手创建不同种类的视图,在各个用途下使用它们,掌握实际的操作技巧。只有在实践中不断积累经验,才能运用自如。视图作为数据库虚拟对象的重要实现,是开发人员和DBA必须掌握的技能之一。