sql 数据库 第八讲 SQL Server 2008视图.pptVIP

  • 2
  • 0
  • 约7.99千字
  • 约 52页
  • 2017-06-07 发布于湖北
  • 举报
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)

1亿VIP精品文档

相关文档