第7章 视图的创建和使用
为 : T_STUDENT、T_SCORE 和 T_COURSE, 选 择 的 字 段 为 : T_STUDENT 表 中 的 S_NUMBER 和 S_NAME字段、T_COURSE表中的C_NAME字段及T_SCORE表中的SCORE字段,要求查询的数据 为05541班学生的考试成绩。
© 2009 Confidential GTSS
第7章 视图的创建和使用
© 2009 Confidential GTSS
本章学习目标
▪ 了解视图和数据表之间的主要区别 ▪ 了解视图的优点 ▪ 掌握创建、修改和删除视图的方法 ▪ 掌握查看视图信息的方法 ▪ 掌握通过视图修改数据表的方法
© 2009 Confidential GTSS
7.1 概述
数据库对象所依赖的对象,它们可以在任何数据库对象上运行。sp_helptext 可以用于显示视图、触发器或存储过程等在系统表中的定义。它们的语法形式 分别如下:
▪ sp_help 数据库对象名称 ▪ sp_helptext 视图(触发器、存储过程) ▪ sp_depends 数据库对象名称
© 2009 Confidential GTSS
7.3.2 使用系统存储过程查看视图信息
▪ 例7-3-1:使用系统பைடு நூலகம்储过程sp_help显示VIEW_SCORE视图的特征信息。 ▪ 例7-3-2:使用sp_helptext显示VIEW_SCORE视图在系统表中的定义。 ▪ 例7-3-3:查看加密视图的定义信息。 ▪ 例7-3-4:使用sp_depends显示VIEW_SCORE视图所依赖的对象。
© 2009 Confidential GTSS
7.2 创建视图
▪ 在SQL Server 2005中创建视图主要有两种方法:使用SQL Server管理控制台
和使用Transact-SQL语句中的CREATE VIEW命令。创建视图之前,应考虑以下 基本原则:
▪ 只能在当前数据库中创建视图。 ▪ 视图名称必须遵循标识符的规则,且对每个架构都必须唯一。 ▪ 必须获取由数据库所有者授予的创建视图的权限。
© 2009 Confidential GTSS
7.2.2 使用Transact-SQL语句 创建视图 ▪ CHECK OPTION : 强 制 针 对 视 图 执 行 的 所 有 数 据 修 改 语 句 都 必 须 符 合 在
select_statement 中设置的条件。
▪ ENCRYPTION:对视图文本进行加密。 ▪ 例7-2-2:使用Transact-SQL语句创建一个新视图,命名为VIEW_SCORE,要求基表的来源
求计算各个班级各门课程的总分及平均分。
© 2009 Confidential GTSS
7.3 查看视图信息
▪ 在SQL Server中,可以通过SQL Server管理控制台或者使用系统存储过程来查
看视图信息。
© 2009 Confidential GTSS
7.3.1 使用SQL Server管理控制台 查看视图信息
▪ 打开SQL Server管理控制台窗口,在SQL Server管理控制台左边的“树”选项
卡中选择指定的SQL Server组,展开指定的服务器,打开要查看视图的数据库 文件夹,选择“视图”目录。
© 2009 Confidential GTSS
7.3.2 使用系统存储过程查看视图信息
▪ 系统存储过程sp_help可以显示数据库对象的特征信息,sp_depends可以显示
7.2.2 使用Transact-SQL语句 创建视图
▪ 例7-2-3:使用Transact-SQL语句创建新视图VIEW_SCORE_NotPass。对数据表
和对字段的选择同上,要求只显示各班不及格的学生的学号、姓名、课程名及 成绩。并加密视图的定义。
▪ 例7-2-3:使用Transact-SQL语句创建新视图VIEW_SCORE_SumAndAverage。要
© 2009 Confidential GTSS
7.1.1 视图的概念
▪ 视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图
所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图 的结构和数据是对数据表进行查询的结果。
▪ 根据创建视图时给定的条件,视图可以是一个数据表的一部分,也可以是多个
[ ,...n ] ) ]
▪ [ WITH ENCRYPTION ] ▪ AS select_statement ▪ [ WITH CHECK OPTION ] [ ; ]
© 2009 Confidential GTSS
7.2.2 使用Transact-SQL语句 创建视图
▪ 其中,各参数的说明如下: ▪ schema_name:视图所属架构的名称。 ▪ view_name:视图的名称。 ▪ column:视图中的列使用的名称。 ▪ AS:指定视图要执行的操作。 ▪ select_statement:定义视图的 SELECT 语句。
进行升序排序。
© 2009 Confidential GTSS
7.2.2 使用Transact-SQL语句 创建视图
▪ 使用Transact-SQL语言中的CREATE VIEW语句创建视图,其语法形式如下: ▪ CREATE VIEW [ schema_name . ] view_name [ (column
© 2009 Confidential GTSS
7.2.1 使用SQL Server管理控制台 创建视图
▪ 方法是在SQL Server管理控制台左边的“树”选项卡中展开指定的服务器,打
开要创建视图的数据库,右击其中的“视图”对象,从弹出的快捷菜单中选择 “新建视图”选项。
▪ 例7-2-1:创建一个视图,要求显示T_STUDENT表中所有姓张的同学,并按性别
基表的联合,它存储了要执行检索的查询语句的定义,以便在引用该视图时使 用。
© 2009 Confidential GTSS
7.1.2 视图的优点
▪ 简化数据操作:视图可以简化用户处理数据的方式。 ▪ 着重于特定数据:不必要的数据或敏感数据可以不出现在视图中。 ▪ 视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。 ▪ 提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口。 ▪ 自定义数据:视图允许用户以不同方式查看数据。 ▪ 导出和导入数据:可使用视图将数据导出到其他应用程序。