- 1、本文档共42页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server--chap8--第8章 视图及其应用 * 第8章 视图及其应用 8.1 视图综述 8.1.1 视图的基本概念 数据视图是另一种在一个或多个数据表上观察数据的途径,可以把数据视图看作是一个能把焦点定在用户感兴趣的数据上的监视器,用户看到的是实时数据 视图可看成是虚拟表或存储查询。 可通过视图访问的数据不作为独特的对象存储在数据库内。数据库内存储的是 SELECT 语句。SELECT 语句的结果集构成视图所返回的虚拟表。 用户可以在 T-SQL 语句中通过引用视图名称来使用虚拟表。 在视图中查询的表被称为“基表”,视图常见的示例有: 基表的行和列的子集 两个或多个基表的连接 两个或多个基表的联合 基表和另一个视图或视图的子集 的组合 基表的统计概要 假设教务科现在需要为各授课教师提供浏览所有选自己课的同学各年的学习成绩的服务。我们可以将各同学的各科成绩记录在一张表内,如表stud_score,为各授课老师建立其所授课的各学生成绩组成的视图comp_score use tsing_DB1 go CREATE VIEW comp_score AS SELECT year, stud_id, comp_score FROM stud_score 当计算机老师需要浏览所有选自己课的同学各年的学习成绩: SELECT * FROM comp_score 8.1.2 使用视图的优点和缺点 隐蔽数据库的复杂性 视图隐蔽了数据库设计的复杂性,使得开发者可在不影响用户使用数据库的情况下改变数据库内容 2. 控制用户提取数据 通过将某些不需要的、敏感的或不适当的数据控制在视图之外,可以实现为用户定制其个人所使用的表。 视图还可隐蔽复杂的查询,包括对异构数据的分别查询,用户只需查询视图而不用编写复杂的查询或执行命令 3. 简化数据库用户管理 建立视图以后,还可起到保护数据库基表的作用,如使用GRANT和REVOKE命令为各种用户授予在视图上的操作权限,而取消其在表上的操作权限,这样,用户就只能查询和修改其所能见到的数据,从而实现了对底层基表设计结构的保护 4. 改进性能 通过在视图中存储复杂查询的运算结果并为其他查询提供这些摘要性的结果使数据库的性能得到提高 视图的缺点表现在对修改的限制。如要修改视图的某些行,系统要将此修改转换为对基表某些行的修改,若对复杂的视图或存在嵌套关系的视图进行修改,可能由于所有权链遭破坏而无法修改 8.2 视图的创建和查询 CREATE VIEW [database_name.] [owner.] view_name [(column[,...n ])] [ WITH ENCRYPTION ] AS select_statement [ WITH CHECK OPTION ] 例:在pubs范例库上选择表authors中的au_id、phone字段和表jobs中job_id、job_desc字段创建一个名为my_view1的视图,该视图中的记录还要求字段au_id的第一个字符为‘1’,字段job_desc的第一个字符为‘N ’的条件 use pubs go CREATE VIEW my_view1 AS SELECT au_id, phone, job_id, job_desc FROM authors, jobs WHERE au_id LIKE 1% AND job_desc LIKE N% 例:使用函数avg()对视图进行定义 在使用函数时,派生列必须在CREATE VIEW语句中包括一个列名average。 本例使用的数据库是在以前我们创建的tsing_DB1范例数据库,操作的表为表stud_score use tsing_DB1 Go CREATE VIEW score_view(year, average) AS SELECT year, avg(comp_score) FROM stud_score GROUP BY year 下面语句获得新建视图的信息: SELECT * FROM score_view 8.3 视图定义信息查询 8.3.1 使用企业管理器 双击comp_score,可看到该视图的属性 8.3.2 通过执行系统存储过程查看视图的定义信息 EXEC sp_helptext objname 需查看的视图名称 可运行sp_depends获得视图对象的参照对象和字段: EXEC sp_depe
文档评论(0)