SQL Server 构架
SQL 视图
在SQL Server 2005系统中,可以把视图分为3中3类型,即标准视图,索引视图和分区视图。
视图可以被看成是虚拟表或存储查询。可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是 SELECT 语句。SELECT 语句的结果集构成视图所返回的虚拟表。用户可以用引用表时所使用的方法,在 Transact-SQL 语句中通过引用视图名称来使用虚拟表。使用视图可以实现下列任一或所有功能:
将用户限定在表中的特定行上。
例如,只允许雇员看见工作跟踪表内记录其工作的行。
将用户限定在特定列上。
例如,对于那些不负责处理工资单的雇员,只允许他们看见雇员表中的姓名列、办公室列、工作电话列和部门列,而不能看见任何包含工资信息或个人信息的列。
将多个表中的列联接起来,使它们看起来象一个表。
聚合信息而非提供详细信息。
例如,显示一个列的和,或列的最大值和最小值。
通过定义 SELECT 语句以检索将在视图中显示的数据来创建视图。SELECT 语句引用的数据表称为视图的基表。在下例中,pubs 数据库中的 titleview 是一个视图,该视图选择三个基表中的数据来显示包含常用数据的虚拟表:
CREATE VIEW titleview
AS
SELECT title, au_ord, au_lname, price, ytd_sales, pub_id
FROM authors AS a
JOIN titleauthor AS ta ON (a.au_id = ta.au_id)
JOIN titles AS t ON (t.title_id = ta.title_id)
之后,可以用引用表时所使用的方法在语句中引用 titleview。
SELECT *
FROM titleview
一个视图可以引用另一个视图。例如,titleview 显示的信息对管理人员很有用,但公司通常只在季度或年度财务报表中才公布本年度截止到现在的财政数字。可以建立一个视图,在其中包含除 au_ord 和 ytd_sales 外的所有 titleview 列。使用这个新视图,客户可以获得已上市的书籍列表而不会看到财务信息:
CREATE VIEW Cust_titleview
AS
SELECT title, au_lname, price, pub_id
FROM titleview
视图可用于在多个数据库或 Microsoft® SQL Server™ 2000 实例间对数据进行分区。分区视图可用于在整个服务器组内分布数据库处理。服务器组具有与服务器聚集相同的性能优点,并可用于支持最大的 Web 站点或公司数据中心的处理需求。原始表被细分为多个成员表,每个成员表包含原始表的行子集。每个成员表可放置在不同服务器的数据库中。每个服务器也可得到分区视图。分区视图使用 Transact-SQL UNION 运算符,将在所有成员表上选择的结果合并为单个结果集,该结果集的行为与整个原始表的复本完全一样。例如在三个服务器间进行表分区。在第一个服务器上定义如下的分区视图:
CREATE VIEW PartitionedView AS
SELECT *
FROM MyDatabase.dbo.PartitionTable1
UNION ALL
SELECT *
FROM Server2.MyDatabase.dbo.PartitionTable2
UNION ALL
SELECT *
FROM Server3.MyDatabase.dbo.PartitionTable3
在其它两个服务器上定义类似的分区视图。利用这三个视图,三个服务器上任何引用 PartitionedView 的 Transact-SQL 语句都将看到与原始表中相同的行为。似乎每个服务器上都存在原始表的复本一样,而实际上每个表只有一个成员表和分区视图。有关更多信息,请参见视图使用方案。
只要所做的修改只影响视图所引用的其中一个基表,就可以更新所有 SQL Server 版本内的视图(可以对其执行 UPDATE、DELETE 或 INSERT 语句)。
-- Increase the prices for publisher '0736' by 10%.
UPDATE titleview
SET price = price * 1.10
WHERE pub_id = '0736'
GO
SQL Server 2000 支持可引用视图的更复杂的 INSERT、UPDATE 和 DELETE 语句。可在视图上定义 INSTEAD OF 触发器,指定必须对基表执行的个别更新以支持 INSERT、UPDATE 或 DELETE 语句。另外,分区视图还支持 INSERT、UDPATE 和 DELETE 语句修改视图所引用的多个成员表。
索引视图是 SQL Server 2000 具有的功能,可显著提高复杂视图类型的性能,这些视图类型通常在数据仓库或其它决策支持系统中出现。
视图的结果集通常不保存在数据库中,因此视图也称为虚拟表。视图的结果集动态包含在语句逻辑中并在运行时动态生成。有关更多信息,请参见视图解析。
复杂的查询(如决策支持系统中的查询)可引用基表中的大量行,并将大量信息聚积在相对较简洁的聚合中,如总和或平均值。SQL Server 2000 支持在执行此类复杂查询的视图上创建聚集索引。当执行 CREATE INDEX 语句时,视图 SELECT 的结果集将永久存储在数据库中。SQL 语句此后若引用该视图,响应时间将会显著缩短。对基本数据的修改将自动反映在视图中。
SQL Server 2000 CREATE VIEW 语句支持 SCHEMABINDING 选项,以防止视图所引用的表在视图未被调整的情况下发生改变。必须为任何创建索引的视图指定 SCHEMABINDING。
请参见
CREATE INDEX
CREATE TRIGGER
CREATE VIEW
设计索引视图
视图
分享到:
相关推荐
### 跨服务器建立视图SQL #### 一、引言 在实际的数据库管理与开发过程中,经常会遇到需要从不同的数据库服务器中获取数据并进行整合的情况。为了方便地实现这一需求,可以采用跨服务器查询的方式来构建视图。本文...
视图 sql server
因Oracle暂不支持对视图(View)的加密,在实际工作中有时需提供给第三方只读账户,为保护知识产权,可用文中所述方法防止第三方账户查看视图(View)中的SQL代码。
根据给定的信息,我们可以整理出关于SQL视图的相关知识点。以下是对这些知识点的详细解析: ### SQL视图简介 视图是一种虚拟表,其内容由存储在基本表中的数据通过查询来定义。视图并不实际存储数据,而是存储定义...
1、掌握数据更新语句的使用; 2、掌握视图操作的基本方法和应用,理解基于视图的查询和数据更新操作的过程。
### SQL Server重置所有视图的存储过程 #### 背景与应用场景 在数据库管理过程中,经常会遇到因表结构更改(例如增加或删除字段)而导致依赖这些表的视图出现错误的情况。为了修复这类问题,手动更新每个受影响的...
SQL Server 2008 修改视图 - SQL 语句方式 在 SQL Server 2008 中,修改视图是通过使用 Alter View 语句来实现的。下面将详细介绍修改视图的语法、实例和注意事项。 修改视图语法 修改视图的基本语法格式为: ...
在SQL Server 2008中,操作架构、索引和视图是数据库管理与查询中的核心概念。这些概念对于数据库性能优化、数据组织以及安全访问控制至关重要。本章视频教程将深入探讨这三个主题,帮助你全面理解并掌握SQL Server ...
sql临时创建视图.sql
分布式分区视图是SQL Server提供的一种高级数据管理技术,它允许跨越多个数据库或服务器的数据集在逻辑上被视为单一实体。这种技术特别适用于处理大规模数据,尤其是进行水平分区时,能够提高查询性能,优化数据分布...
在SQL(Structured Query Language)中,存储过程、视图、数据库和表是核心概念,它们构成了数据管理和操作的基础。下面将分别对这些概念进行详细解释,并提供如何创建它们的步骤。 1. 存储过程(Stored Procedures...
下面将详细介绍如何通过三个SQL视图来查询SQL Server中的所有数据库字典。 ### SQL Server数据库字典简介 在SQL Server中,数据库字典是存储有关数据库元数据(如表、列、索引等)的系统表和视图的集合。这些元...
在SQL数据库管理中,视图(View)是一种虚拟表,它并不存储数据,而是基于一个或多个表的查询结果。视图的创建是为了提供数据的另一种访问方式,它可以简化复杂的查询,隐藏敏感信息,或者聚合来自不同表的数据。在...
在这个场景中,我们主要关注如何使用SQL来创建数据库表和视图。 首先,让我们从创建数据库表开始。在SQL中,创建表的语句是`CREATE TABLE`。它允许你定义表的结构,包括列名、数据类型、约束条件等。一个基本的`...
### SQL Server 视图管理深度解析 #### 一、视图概念与重要性 视图在SQL Server中扮演着至关重要的角色,它本质上是存储在数据库中的查询,提供了一种虚拟表的方式,允许用户从一个或多个表中选择数据。视图并不...
SQL破解加密视图存储过程SqlDecryptor_v1.1.0.rar.rar
第5章 操作架构、索引和视图 SQL 2008完全学习手册 视频教程 第6章 数据查询和管理 第7章 操作查询 第8章 Transact-SQL编程 第9章 存储过程 第10章 触发器 第11章 SQL Server 2008的安全机制 第12章 备份与恢复...
在SQL Server数据库管理中,有时由于项目的持续优化和升级,可能会遗留一些无效的视图或存储过程。这些对象可能由于代码改动、表结构调整或者不再被引用而变得无用,但它们依然存在于数据库中,占用资源并可能导致...
视图.sql qq:292258449