第5章数据库的查询和视图.ppt

  1. 1、本文档共78页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第5章数据库的查询和视图

2.视图的种类 在SQL Server 2012数据库中,视图主要分为三种,根据实现的使用,标准视图是最为常用的视图。 (1)标准视图。标准视图组合了一个或多个表中的数据,其重点放在特定数据上及简化数据操作。 (2)索引视图。一般的视图是虚拟的,并不是实现保存在磁盘上的表,索引视图是被物理化了的视图,它已经过计算并记录在磁盘上。 (3)分区视图。分区视较长是由在一台或多台服务器间水平连接一组成员表中的分区数据形成的视图。 3.视图的作用 (1)简化操作。可以把经常使用的多表查询操作定义成视图,从而用户不用每次都要写复杂的查询语句,直接使用视图来方便地完成查询。 (2)导入导出数据。用户可以使用复制程序把数据通过视图导出。 (3)数据定制与保密。重新定制数据,使得数据便于共享;合并分割数据,有利于数据输出到应用程序中。视图机制能使不同的用户以不同的方式看待同一数据。增加了安全性。 (4)保证数据的逻辑独立性。简化查询操作,屏蔽了数据库的复杂性。 4.视图的约束 (1)可以对其他视图创建视图,SQL Server允许嵌套视图,但嵌套不得超过32层。 (2)定义视图的查询不能包含COMPUTE子句、COMPUTE BY子句或INTO关键字。 (3)定义视图的查询不能包含ORDER BY子句,除非在SELECT语句的选择列表中使用TOP子句。 (4)定义视图的查询不能包含指定查询提示的OPTION子句,也不能包含TABLESAMPLE子句。 (5)不能为视图定义全文索引。 (6)不能创建临时视图,也不能对临时表创建视图。 (7)不能删除参与到使用SCHEMABINDING子句创建的视图中的视图、表或函数,除非该视图已被删除或更改而再具有架构绑定。 5.5.2 视图的创建 1.使用对象资源管理器创建视图 2.使用T-SQL语句创建视图 创建视图的基本语法格式如下。? CREATE VIEW [database_name.][owner_name.] view_name [(column [,…n])] [WITH {ENCRYPTION|SCHEMABINDING|VIEW_METADATA}]] AS Select_statement [WITH CHECK OPTION]? 语法中的各参数说明如下: view_name。用于指定新建视图的名称。 column。用于指定视图中的字段名称。 ENCRYPTION。表示将新建视图加密。 (4) SCHEMABINDING。表示在select_statement语句中如果包含表、视图或者用户自定义函数,则表名、视图名或者函数名前必须包含所有者前缀。 (5) VIEW_METADATA。表示如果某一查询中引用该视图且要求返回浏览模式的元数据时,那么SQL Server将向DBLIB和OLE DBAPLS返回视图的元数据信息。 (6) Select_statement。用于创建视图的SELECT语句。 (7)WITH CHECK OPTION。用于强制视图上执行的所有数据修改语句都必须符合由Select_statement设置的准则。 创建视图时应该注意以下情况: (1)只能在当前数据库中创建视图,在视图中最多只能引用1024个列,视图中记录的数目由其基表中的记录数决定。 (2)如果视图引用的基表或者视图被删除,则该视图不能再被使用,直到创建新的基表或者视图。 (3)如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。 (4)不能在视图上创建索引,不能在规则、默认、触发器的定义中引用视图。 (5)视图的名称必须遵循标识符规则,且对每个用户必须是唯一的。此外,该名称不得与该用户拥有的任何表的名称相同。 【例5.37】在jxgl数据库中由“学生信息”、“课程”、“成绩”三个表创建视图“学生成绩视图”,包含的列有学号、姓名、性别、课程号、课程名和成绩。代码如下。 CREATE VIEW 学生成绩视图 AS SELECT 学生信息.stu_id AS 学号, stu_name AS 姓名, stu_sex AS 性别, 课程.course_id AS 课程号, course_name AS 课程名称, score AS 成绩 FROM 成绩 INNER JOIN 课程 ON 成绩.course_id =课程.course_id INNER JOIN 学生信息 ON 成绩.stu_id =学生信息.stu_id 【例5.38】建立计算机系学生视图,包括学生的学号、姓名、性别、出生时间、系别,并使用WITH ENCRYPTION选项,将视图进行加密。代码如下。 CREATE VIEW 计算机系学生 WITH ENCRYPTION AS SELEC

文档评论(0)

peain + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档