视图是为用户对数据多种显示需求而创建的,其主要用在一下几种情况:
(1)限制用户只能访问特定表特定条件的内容,提高系统的安全性。
(2)隐藏表结构、创建多种形式的数透视,满足不同用户需求。
(3)将复杂的SELECT语句和表JION形成一个视图,给用户提供一个良好的接口。
(4)为使用频率较高的联表聚合运算创建索引视图,以提升程序的性能。
(5)创建分区视图调用远程数据,实现数据的分布式存储与查询,提升程序的吞吐能力。
一了解视图
视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图在数据库中并不是以数据值存储集形式存在,除非是索引视图。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。
对其中所引用的基础表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其他数据库的一个或多个表,或者其他视图。分布式查询也可用于定义使用多个异类源数据的视图。例如,如果有多台不同的服务器分别存储您的单位在不同地区的数据,而您需要将这些服务器上结构相似的数据组合起来,这种方式就很有用。
二、视图类型
在 SQL Server 2005 中,您可以创建标准视图、索引视图和分区视图。
标准视图
标准视图组合了一个或多个表中的数据,您可以获得使用视图的大多数好处,包括将重点放在特定数据上及简化数据操作。
索引视图
索引视图是被具体化了的视图,即它已经过计算并存储。可以为视图创建索引,即对视图创建一个唯一的聚集索引。索引视图可以显著提高某些类型查询的性能。索引视图尤其适于聚合许多行的查询。但它们不太适于经常更新的基本数据集。
分区视图
分区视图在一台或多台服务器间水平连接一组成员表中的分区数据。这样,数据看上去如同来自于一个表。联接同一个 SQL Server 实例中的成员表的视图是一个本地分区视图。
三、使用视图的情况
视图通常用来集中、简化和自定义每个用户对数据库的不同认识。视图可用作安全机制,方法是允许用户通过视图访问数据,而不授予用户直接访问视图基础表的权限。视图可用于提供向后兼容接口来模拟曾经存在但其架构已更改的表。还可以在向 Microsoft SQL Server 2005 复制数据和从其中复制数据时使用视图,以便提高性能并对数据进行分区。
着重于特定数据视图使用户能够着重于他们所感兴趣的特定数据和所负责的特定任务。不必要的数据或敏感数据可以不出现在视图中。例如, AdventureWorks 示例数据库中的视图 vBikes 允许用户查看当前库存的所有自行车的名称。该视图将从 Product 表中筛选掉除 Name 之外的所有字段,并仅返回自行车成品的名称,而不是自行车配件的名称。
简化数据操作
视图可以简化用户处理数据的方式。可以将常用联接、投影、UNION 查询和 SELECT 查询定义为视图,以便使用户不必在每次对该数据执行附加操作时指定所有条件和条件限定。例如,可以将一个用于报表目的且执行子查询、外联接和聚合来从一组表中检索数据的复杂查询创建为视图。视图简化了对数据的访问,因为每次生成报表时无需编写或提交基础查询,而是查询视图。有关对数据进行操作的详细信息,请参阅查询基础知识。
尽管不是复杂查询, AdventureWorks 示例数据库中的视图 vBikes 仍允许用户着重于特定数据,而不必构造生成视图所需的 JOIN 子句。
&nb