第6章 视图的创建与使用课件.ppt
《第6章 视图的创建与使用课件.ppt》由会员分享,可在线阅读,更多相关《第6章 视图的创建与使用课件.ppt(75页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、SQL SERVER应应 用用 与与 开开 发发计算机工程技术学院(软件学院) 任淑美二00七年九月(六)(六)本课主要内容本课主要内容 视图的概念及优点创建视图查看视图信息使用视图删除视图本课核心知识点本课核心知识点视图和数据表之间的主要区别 视图的概念及优点 创建、修改和删除视图的方法 本课重点难点本课重点难点视图的概念及优点 创建、修改和删除视图的方法 通过视图修改数据表的方法 本课教学目的本课教学目的了解视图的概念和优点,能够在实际应用中设计合适的视图 了解视图和数据表之间的主要区别 掌握如何创建、修改和删除视图 掌握如何查看视图的信息 掌握如何通过视图操作数据表 第第6章章 视图的创
2、建和使用视图的创建和使用 视图就是查看表的一种方法。是对根据预定义的选择标准由一个或多个行的集合建立起来的动态表的静态定义。 6.1 概述概述 视图是查看数据库表中数据的一种方法。视图提供了存储预定义的查询语句作为数据库中的对象以备以后使用的能力。视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。但是,视图并不在数据库中以存储的数据值集形式存在。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。视图的结果集通常不保存在数据库中,因此视图也称为虚拟表。视图的结果集动态包含在语句逻辑中并在运行时动态生成。 对其中所引用的基础表来说,视图的作用
3、类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。分布式查询也可用于定义使用多个异类源数据的视图。6.1.1 理解视图的概念理解视图的概念 【问题6-1】每天登陆BBS时,用户第一个浏览到的就是今日“十大热点”,该如何正确及时地显示出每天的十大热点新闻? 较优的解决方案就是采用视图。视图的内容通常包括:1)基表的列的子集或行的子集2)两个或多个基表的联合3)两个或多个基表的连接4)基表的统计汇总(可以是经过对基表的各种复杂运算的结果)5)另外一个视图的子集(可基于表,也可基于另外一个视图)6)视图和基表的混合Topic帖子表。Users论坛用户表 Section版
4、块表 “十大热点”视图 。通过视图进行查询没有任何限制,通过它们进行数据修改时的限制也很少。对其中所引用的基表来说,视图的作用类似于筛选。定义视图的筛选可以来自当前或其它数据库的一个或多个表,或者其它视图。视图被定义后便存放在数据库中,对视图中的数据的操作与对表的操作一样,可以对其进行查询、修改和删除,但对数据的操作要满足一定的条件。当对视图所看到的数据进行修改时,相应的基表的数据也会发生变化,同时,若基表的数据发生变化,这种变化也会自动地反映到视图中 。6.1.2 认识视图和查询的区别认识视图和查询的区别 虽然视图和查询有如此多的相似性,但是他们之间还是有很大的差异的,它们之间的差异体现在下
5、面几个方面。 存储,视图存储为数据库设计的一部分,而查询则不是。 更新结果,对视图和查询的结果集更新限制是不同的 。排序结果,可以排序任何查询结果生成查询计划数据库服务器可以在保存视图后立即为视图建立查询计划。加密,可以加密视图,但不能加密查询 6.1.3 理解视图的优点理解视图的优点 用户可以根据自己的实际需要创建视图,使用视图有很多优点,主要有以下几点:1、简单性视图可以屏蔽数据的复杂性,简化用户对数据库的操作。使用视图,用户可以不必了解数据库的结构,就可以方便地使用和管理数据。2、逻辑数据独立性视图可以使应用程序和数据库表在一定程度上独立。程序可以建立在视图之上,从而程序与数据库表被视图
6、分割开来。3、安全性通过视图用户只能查询和修改他们所能见到的数据。数据库中的其它数据则既看不见也取不到。通过视图,用户可以被限制在数据的不同子集上。6.2 创建视图创建视图 创建视图的方法共有三种:使用企业管理器创建视图使用Transact-SQL语句中CREATE VIEW创建视图使用企业管理器的创建视图向导来创建视图在创建视图前请考虑如下原则:在创建视图前请考虑如下原则: 只能在当前数据库中创建视图。视图名称必须遵循标识符的规则,且对每个用户必须为唯一。可以在其它视图和引用视图的过程之上建立视图。SQL Server 2000 允许嵌套多达 32 级视图。不能将规则或 DEFAULT 定义
7、与视图相关联 不能创建临时视图,也不能在临时表上创建视图 若要创建视图,数据库所有者必须授予用户创建视图的权限,并且用户对视图定义中所引用的表或视图要有适当的权限 6.2.1 利用企业管理器创建视图利用企业管理器创建视图 使用企业管理器创建视图的具体操作步骤如下:1、打开企业管理器窗口,打开【新建视图】对话框。方法一:启动SQL SERVER企业管理器,依次单击【服务器组】【服务器】【数据库】【展开要创建视图的数据库】,在要创建视图的数据库上单击右键,依次单击【新建】【视图】,如图所示。方法二:启动SQL SERVER企业管理器,依次单击【服务器组】【服务器】【数据库】【展开要创建视图的数据库
8、】【视图】,单击右键,在弹出的快捷菜单中单击【新建视图】,如图 所示 。2、在【新建视图】对话框中,可以输入相应的SQL语句,如图所示。在【新建视图】对话框上部的空白部分,单击右键,选择【添加表】,或者单击工具栏上的按钮,出现【添加表】对话框,如图4所示。在【表】选项卡的列表框中选择相应的表作为创建视图的基表。在【视图】和【函数】选项卡中,可以选择需要的视图或者函数,并依此创建新的视图。 3、选中3个表Topic、Section和Users。再选择Topic表的ttopic字段、Section表中的Sname和SclickCount字段以及Users表中的uanme字段,如图所示。在【输出】中
9、,可以选择显示或者不显示该字段。在【排序类型】中可以选择升序或者降序。在【准则】中输入限制条件,可以限制输出的记录。或者在定义视图的查询语句中加入WHRER子句进行限制。4、右击字段定义对话框,选择【属性】进行设置,如图所示。其中“DISTINCE值”选择不输出重复的记录,“加密浏览”实现对视图定义加密,“顶端”限制视图最多输出的记录数目。5、单击 按钮或者右击空白处选择【运行】,可以在窗口的最下面看到结果数据的显示。6、单击 按钮或者右击空白处选择【保存】,在弹出的【另存为】对话框中输入视图的名字,并单击【确定】,即可完成视图的创建。 6.2.2 使用使用Transact-SQL语言创建视图
10、语言创建视图 用CREATE VIEW语句创建视图。语法格式语法格式:CREATE VIEW . . view_name ( column ,.n ) WITH ,.n AS select_statement WITH CHECK OPTION := ENCRYPTION | SCHEMABINDING | VIEW_METADATA 参数说明:参数说明:database_name:是创建视图的数据库名称。database_name必须是现有数据库的名称。如果不指定数据库,database_name默认为当前数据库。owner:是指定创建视图所有者的名字,owner必须是database_na
11、me所指定的数据库中的现有用户,owner默认为database_name所指定的数据库中与当前连接相关联的用户名。view_name:是视图的名称。视图名称必须符合标识符规则。可以选择是否指定视图所有者名称。column:是视图中的列名。只有在下列情况下,才必须命名 CREATE VIEW 中的列:当列是从算术表达式、函数或常量派生的,两个或更多的列可能会具有相同的名称(通常是因为联接),视图中的某列被赋予了不同于派生来源列的名称。还可以在 SELECT 语句中指派列名。如果未指定 column,则视图列将获得与 SELECT 语句中的列相同的名称。 select_statement:是定义
12、视图的 SELECT 语句。该语句可以使用多个表或其它视图。若要从创建视图的 SELECT 子句所引用的对象中选择,必须具有适当的权限。视图不必是具体某个表的行和列的简单子集。可以用具有任意复杂性的 SELECT 子句,使用多个表或其它视图来创建视图。 对于视图定义中的 SELECT 子句有几个限制。CREATE VIEW 语句不能:语句不能: 包含 COMPUTE 或 COMPUTE BY 子句 。包含 ORDER BY 子句,除非在 SELECT 语句的选择列表中也有一个 TOP 子句 包含 INTO 关键字 引用临时表或表变量 WITH CHECK OPTION:强制视图上执行的所有数据
13、修改语句都必须符合由 select_statement 设置的准则。通过视图修改行时,WITH CHECK OPTION 可确保提交修改后,仍可通过视图看到修改的数据 WITH ENCRYPTION:表示 SQL Server 加密包含 CREATE VIEW 语句文本的系统表列。使用 WITH ENCRYPTION 可防止将视图作为 SQL Server 复制的一部分发布 SCHEMABINDING:将视图绑定到架构上。指定 SCHEMABINDING 时,select_statement 必须包含所引用的表、视图或用户定义函数的两部分名称 (owner.object) 不能除去参与用架构绑
14、定子句创建的视图中的表或视图,除非该视图已被除去或更改,不再具有架构绑定。否则,SQL Server 会产生错误。另外,如果对参与具有架构绑定的视图的表执行 ALTER TABLE 语句,而这些语句又会影响该架构绑定视图的定义,则这些语句将会失败 VIEW_METADATA:指定为引用视图的查询请求浏览模式的元数据时,SQL Server 将向 DBLIB、ODBC 和 OLE DB API 返回有关视图的元数据信息,而不是返回基表或表。浏览模式的元数据是由 SQL Server 向客户端 DB-LIB、ODBC 和 OLE DB API 返回的附加元数据,它允许客户端 API 实现可更新的客
15、户端游标。浏览模式的元数据包含有关结果集内的列所属的基表信息 。说明:说明: 只能在当前数据库中创建视图。视图最多可以引用 1,024 列 CREATE VIEW 权限默认授予 db_owner 和 db_ddladmin 固定数据库角色成员。sysadmin 固定服务器角色成员和 db_owner 固定数据库角色成员可以将 CREATE VIEW 权限转让给其他用户 若要创建视图,用户必须具有 CREATE VIEW 权限,还必须在视图所引用的表、视图和表值函数上具有 SELECT 权限,在视图所唤醒调用的标量值函数上具有 EXECUTE 权限。如果某个视图依赖于已除去的表(或视图),则当有
16、人试图使用该视图时,SQL Server 将产生错误信息。如果创建了新表或视图(该表的结构与以前的基表没有不同之处)以替换除去的表或视图,则视图将再次可用。如果新表或视图的结构发生更改,则必须除去并重新创建该视图。【例6-1】利用论坛用户表Users创建一个新的视图,命名为v_user1。要求显示级别大于等于3的用户的昵称,性别,等级和备注信息。USE bbsDBGOCREATE VIEW v_user1ASSELECT UID AS 作者编号 ,UName AS 作者 ,USex AS 性别 ,UClass AS 等级,UState AS 备注FROM Users WHERE UClass=
17、3【例6-2】利用论坛用户表Users、版块表Session和发帖表Topic创建一个新的视图,命名为v_toptopic。要求显示版块,主题,发帖人昵称以及帖子的点击数。并且对视图进行加密。USE bbsDBGOCREATE VIEW v_toptopicWITH ENCRYPTIONASSELECT Section.SName AS 版块 , Topic.TTopic AS 主题 , Users.UName AS 作者 , Topic.TClickCount AS 点击数FROM Section,Topic,UsersWHERE Topic.tuid=Users.uid AND Topic
18、.tsid=Section.sid 6.2.3 使用向导创建视图使用向导创建视图 1、在企业管理器中打开“创建视图向导”对话框。方法一:启动企业管理器,单击控制台树上的【服务器组】【服务器】【数据库】【展开要创建视图的数据库】,单击【工具】菜单【向导】,如图所示。在出现的“选择向导”对话框中单击“数据库”选项左侧的加号,在下一级选项中就可以看到“创建视图向导”选项,如图所示。方法二:启动SQL SERVER企业管理器,单击工具栏中的图标,就可以直接打开“选择向导”对话框。2、在“选项向导”对话框中双击【创建视图向导】选项,或者先选中【创建视图向导】选项,再单击【确定】按钮,会出现“欢迎使用创建
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第6章 视图的创建与使用课件 视图 创建 使用 课件
限制150内