内容正文:
数据库的基本表是按照数据库设计人员的观点设计的,并不一定符合用户的需求。SQL Server 2005可以根据用户需求重新定义表的数据结构,这种数据结构就是视图。
在数据库系统中,为了迅速地从庞大的数据库中找到所需要的数据,SQL Server 2005提供了类似书的目录作用的索引技术。通过对数据库中表设置索引,可以大大加快数据的检索速度。SQL Server 2005还提供了一种称为游标的机制,来处理数据。
本章主要介绍SQL Server 2005数据库系统视图的创建以及使用,索引类型及创建、使用,游标的创建以及使用。
第9章 视图、索引和游标
9.1 视图
9.2 索引
9.3 游标
第9章 视图、索引和游标
9.1.1 视图概述
视图是从一个或多个表或视图中导出的表,其结构和数据是建立在对表的查询基础上的。视图不是真实存在的基础表而是一张虚表,视图所对应的数据并不实际地以视图结构存储在数据库中,而是存储在视图所引用的表中。
1. 视图的优点
使用视图有很多优点,主要表现在:
1) 为用户集中数据,简化用户的数据查询和处理。使得分散在多个表中的数据,通过视图定义在一起。
2) 简化操作,屏蔽了数据库的复杂性。
3) 重新定制数据,使得数据便于共享。
3) 合并分割数据,有利于数据输出到应用程序中。
4) 简化了用户权限的管理,增加了安全性。
9.1 视图
2. 视图的使用范围
视图通常用来集中、简化和自定义每个用户对数据库的不同
认识。通常在以下情况下使用视图:
着重于特定数据。
2) 简化数据操作。
3) 自定义数据。
4) 数据的导入与导出。
5) 跨服务器组合分区数据库
9.1 视图
9.1.2 视图的类型
在SQL Server 2005中,视图可以分为标准视图、索引视图和分区视图。
标准视图组合了一个或多个表中的数据,用户可以使用标准视图对数据库进行查询、修改、删除等基本操作。
索引视图是被具体化了的视图,即它已经过计算并存储。可以为视图创建索引,即对视图创建一个惟一的聚集索引。索引视图可以显著提高某些类型查询的性能。索引视图尤其适于聚合许多行的查询。但它们不太适于经常更新的基本数据集。
分区视图在一台或多台服务器间水平连接一组成员表中的分区数据。这样,数据看上去如同来自于一个表。联接同一个SQL Server实例中的成员表的视图是一个本地分区视图。
9.1 视图
9.1.3 创建视图
在创建视图前应考虑如下准则:
1) 只能在当前数据库中创建视图。
2) 视图名称必须遵循标识符的规则,且对每个架构都必须惟一。
3) 用户可以对其他视图创建视图。
5) 不能将AFTER触发器与视图相关联,只有INSTEAD OF触发器可以与之相关联。
6) 定义视图的查询不能包含COMPUTE子句、COMPUTE BY子句或INTO关键字。
7) 定义视图的查询不能包含ORDER BY子句,除非在SELECT语句的选择列表中还有一个TOP子句。
8) 定义视图的查询不能包含指定查询提示的OPTION子句。
9) 定义视图的查询不能包含TABLESAMPLE子句。
9.1 视图
10) 不能为视图定义全文索引定义。
11) 不能创建临时视图,也不能对临时表创建视图。
12) 不能删除参与到使用SCHEMABINDING子句创建的视图中的视图、表或函数,除非该视图已被删除或更改而不再具有架构绑定。另外,如果对参与具有架构绑定的视图的表执行ALTER TABLE语句,而这些语句又会影响该视图的定义,则这些语句将会失败。
13) 下列情况下必须指定视图中每列的名称:
① 视图中的任何列都是从算术表达式、内置函数或常量派生而来。
② 视图中有两列或多列原应具有相同名称。
③ 希望为视图中的列指定一个与其源列不同的名称。
9.1 视图
在SQL Server 2005中创建标准视图主要有两种方式:一种
方式是在SQL Server Management Studio中使用向导创
建视图,另一种方式是通过在查询窗口中执行T-SQL语句创
建视图。T-SQL提供了视图创建语句CREATE VIEW。其语
法格式如下:
CREATE VIEW [ schema_name . ]
view_name
[ (column [ ,...n ] ) ]
[ WITH <view_attribute> [ ,...n ] ]
AS select_statement [ ; ]
[ WITH CHECK OPTION ]
9.1 视图
【例9-1】创建学生_课程_分数视图,包括计算机学院的学生的学号、姓名,和他们选修的课程号、课程名、分数。
CRE