网站大量收购独家精品文档,联系QQ:2885784924

sql 数据库 第八节 SQL Server 2008视图.ppt

  1. 1、本文档共52页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server 数据库程序设计 授课教师:姜 姗 第8章 视图 本章学习目标 熟练掌握视图的概念和特点; 熟练掌握视图的创建; 熟练掌握视图的管理。 视图概述 在数据查询中,可以看到数据表设计过程中,考虑到数据的冗余度低、数据一致性等问题,通常对数据表的设计要满足范式的要求,因此也会造成一个实体的所有信息保存在多个表中。当检索数据时,往往在一个表中不能够得到想要的所有信息。 为了解决这种矛盾,在SQL Server中提供了视图。 视图的概念 视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图的结构和数据是对数据表进行查询的结果; 只存放视图的定义,不存放视图对应的数据; 基表中的数据发生变化,从视图中查询出的数据也随之改变。 视图的特点 1. 视图能够简化用户的操作,从而简化查询语句 2. 视图使用户能以多种角度看待同一数据,增加可读性 3. 视图对重构数据库提供了一定程度的逻辑独立性; 4. 视图能够对机密数据提供安全保护; 5. 适当的利用视图可以更清晰的表达查询。 使用视图的注意事项 只能在当前数据库中创建视图; 视图的命名必须遵循标识符命名规则,不可与表同名; 如果视图中某一列是函数、数学表达式、常量或者来自多个表的列名相同,则必须为列定义名称。 当视图引用基表或视图被删除,该视图也不能再被使用。 不能在视图上创建全文索引,不能在规则、默认的定义中引用视图。 一个视图最多可以引用1024个列。 视图最多可以嵌套32层。 创建视图 用户可以根据自己的需要创建视图。 创建视图与创建数据表一样,在SQL Server 2008中可以使用SQL Server Management Studio的对象资源管理器和T-SQL语句两种方法。 利用资源管理器创建视图 在SQL Server Management Studio中创建视图的方法主要在视图设计器中完成。 用命令创建视图 利用CREATE VIEW语句可以创建视图,该命令的基本语法如下: CREATE VIEW [ schema_name . ] view_name ??? [ (column [ ,...n ] ) ] [ WITH ENCRYPTION ] AS SELECT_statement? [ WITH CHECK OPTION ] 参数说明如下。 schema_name:视图所属架构名 view_name:视图名 column:视图中所使用的列名。 WITH ENCRYPTION:加密视图。 WITH CHECK OPTION:指出在视图上所进行的修改都要符合查询语句所指定的限制条件,这样可以确保数据修改后仍可通过视图看到修改的数据。 查询语句:用来创建视图的SELECT语句。但对SELECT语句有以下的限制: ① 定义视图的用户必须对所参照的表或视图有查询权限,即可执行SELECT语句。 ② 不能使用COMPUTE或COMPUTE BY子句。 ③ 不能使用ORDER BY子句。 ④ 不能使用INTO子句。 ⑤ 不能在临时表或表变量上创建视图。 【例8-2】创建一个视图,用于查看学生学号、姓名和性别信息,并修改其字段名。 CREATE VIEW v_example2 (学号, 姓名, 性别) AS SELECT stu_id, name, sex FROM stu_info 例3:创建信息系男学生基本信息视图stu_is,包括学生的学号、姓名及年龄,并要求进行修改和插入操作时仍需保证该视图只有信息系的学生; 例4:创建年龄大于20的各学生的学号、姓名及年龄的视图stu_age,并保证对视图文本的修改都要符合年龄大于20这个条件。 WITH CHECK OPTION 对Stu_IS及stu_age视图的更新操作: 修改操作:自动加上Sdept= IS的条件 删除操作:自动加上Sdept= IS的条件 插入操作:自动检查Sdept属性值是否为IS 如果不是,则拒绝该插入操作 如果没有提供Sdept属性值,则自动定义Sdept为IS’ 创建基于多个基表的视图 例1:建立信息系选修了1号课程的学生视图stu_is_c1; CREATE VIEW stu_is_c1 (学号,姓名,成绩) AS SELECT Student. Sno,Sname,Grade FROM Student,SC WHERE Sdept= ‘IS’ AND SC.Cno= 1 AND Student.Sno=SC.Sno 【例8-3】创建一个视图,用于查看学生学号、姓名、课程和成绩信息,并用WITH ENCRYPTION加密。 CREATE VIEW v_example3 WITH ENC

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档