第7章视图及其应用_第1页
第7章视图及其应用_第2页
第7章视图及其应用_第3页
第7章视图及其应用_第4页
第7章视图及其应用_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第7章 视图及其应用123掌握视图的创建掌握视图的创建掌握视图的应用学学习习目目标标理解视图的概念及作用理解视图的概念及作用主要内容主要内容7.1 7.1 视图概述视图概述7.27.2 视图操作视图操作7.17.1 视图概述视图概述 视图和表类似,是数据库的对象之一,可通过视图同时查看数据库中多个表中数据。为了屏蔽数据的复杂性、简化用户对数据的操作、控制用户访问数据的权限、保护数据安全,常为不同的用户创建不同的视图。本章将详细介绍视图的概念、视图的操作及应用。 7.1.17.1.1 视图的基本概念视图的基本概念 视图是一个虚拟表,从一个或多个表中导出(视图也可以从视图中导出),其内容由查询语句

2、定义生成。表是视图的基础,数据库中只存储了视图定义,而不存放视图所对应的数据,视图所对应的数据仍存放在视图所引用的基表中,在引用视图时动态生成。 视图是数据库的用户使用数据库的观点,如对于一个学校,其学生的情况存在于数据库的一个或多个表中,而作为学校的不同职能部门,所关心的学生数据的内容是不同的。即使是同样的数据,也可能有不同的操作要求,于是就可以根据他们的不同需求,在物理的数据库上定义他们对数据库所要求的数据结构,这种根据用户观点定义的数据结构就是视图。7.1.27.1.2 视图的作用视图的作用 视图一经定义后,就可以像表一样被查询、修改、删除和更新。使用视图有下列优点:l 为用户集中数据,

3、简化用户的数据查询和处理l 屏蔽数据库的复杂性l 简化用户权限的管理l 便于数据共享l 可以重新组织数据以便输出到其他应用程序中。7.27.2 视图操作视图操作 对视图的操作和表类似,有创建视图,修改视图,删除视图和使用视图。另外可以通过更新视图(包括插入,修改和删除)数据来修改基本表中的数据。7.2.17.2.1 创建视图创建视图 视图是作为数据库的对象来存储的,在创建视图前,要保证创建视图的用户拥有创建视图的权限,并且对视图中引用的基表或视图有许可权。此外,创建视图还应该注意以下几点:l 只能在当前数据库中创建视图l 在一个视图中最多引用1024列,视图中记录的行数限制由基表中记录数目决定

4、。l 视图的名称必须遵循标识符的命名规则l 视图中列的名称一般继承其基表中列的名称,如果视图中某一列是算术表达式、函数、常量或者来自多个表的列名相同,必须要为视图中的列定义名称。7.2.17.2.1 创建视图创建视图l 可以将视图创建在其它视图上,SQL Server 2008中允许32层的视图嵌套。l 不能在视图上创建全文索引,不能将规则、默认绑定在视图上。l 不能在临时表上创建视图,也不能创建临时视图。l 定义视图的查询语句中不能包含ORDER BY 、COMPUTE、COMPUTE BY子句和INTO关键字 。7.2.17.2.1 创建视图创建视图【例7.1】在学生成绩管理系统数据库中,

5、创建一个名称为“view_cj”视图,使用此视图可以从学生表、成绩和课程表中查询出所以选课学生的学号、姓名、课程名称和成绩。其操作步骤如下:(1)启动【SQL Server Management Studio】,在【对象资源管理器】窗口中,依次展开【数据库】【学生成绩管理系统】节点。(2)右键单击【视图】节点,在弹出的快捷菜单中单击【新建视图】菜单项,打开如图7.1所示的【视图设计器】窗口和【添加表】对话框。1. 使用图形界面方式创建视图7.2.17.2.1 创建视图创建视图(3)从【添加表】对话框中选择建立新视图的基表、视图和函数。本例选择课程、成绩、学生三张表,单击【添加】按钮(在这里可以

6、选择一张表单击一次添加,也可以按住Ctrl键同时选择多张表),将表添加到视图设计器中。关闭【添加表】对话框,回到如图7.2所示的【视图设计器】窗口。图7.1 视图设计器窗口图7.2 创建视图窗口7.2.17.2.1 创建视图创建视图(4)根据新建视图的需要,从表中选择视图引用的列。将列加入视图有三种方式,可以在关系图窗格中,勾选相应表的相应列左边的复选框来完成;也可以通过选择条件窗格中的【列】栏上的列名来完成,还可以在SQL窗格中输入SELECT语句来选择视图需要的列。本例中,依次勾选学生表中的学号、姓名和课程表中的课程名称,成绩中的成绩字段,其结果显示如图7.2所示。(5)在条件窗格中的【筛

7、选器】栏中设置过滤记录的条件。 (6)设置完毕后,在【视图设计器】窗口中,单击工具栏中的 (验证SQL句法)工具按钮,检查T-SQL语法。确认语法正确后,单击 (执行SQL)按钮,预览视图返回的结果,如图7.2中的结果窗格所示。(7)最后,单击【保存】按钮,弹出【选择名称】对话框,在该对话框中为视图命名,本例为“view_cj”,单击【确定】按钮,将视图保存到数据库中。7.2.17.2.1 创建视图创建视图创建视图的语法格式为:CREATE VIEW view_name (column ,.n ) WITH ENCRYPTIONAS SELECT_statement ; WITH CHECK

8、OPTION 2用T-SQL语句创建视图7.2.17.2.1 创建视图创建视图l view_name:新建视图的名称。视图名称必须符合标识符命名规则,其名称前可以包含数据库名和所有者名。l column:视图中的列名。如果没有指定列名,其列名由SELECT 语句指派。l WITH ENCRYPTION:该选项对CREATE VIEW 语句文本进行加密。l SELECT_statement:定义视图的SELECT 语句。该语句可以使用多个表或其它视图。l WITH CHECK OPTION:该选项强制视图上执行的所有数据修改语句都必须符合由 SELECT_statement 设置的条件。7.2.

9、17.2.1 创建视图创建视图【例7.4】创建加密视图xsh_view,要求显示学时大于等于60的课程编号、课程名称和学时,并要求对视图的修改满足学时大于等于60这个条件。USE 学生成绩管理系统GOCREATE VIEW xsh_view WITH ENCRYPTIONASSELECT 课程编号,课程名称,学时 FROM 课程WHERE 学时=60WITH CHECK OPTION7.2.27.2.2 使用视图使用视图视图创建成功后,可以像使用基表一样从中查询数据。【例7.5】查询“jisuanji_view”视图中学生的信息。USE 学生成绩管理系统GOSELECT * FROM jisu

10、anji_viewGO1通过视图查询数据信息7.2.27.2.2 使用视图使用视图 通过视图来修改基表中的数据,必须保证视图是可更新视图,包含数据插入、数据删除和数据修改。由于视图本身不实际存储数据,它只是显示一个或多个基表的查询结果,修改视图中的数据的实质是在修改视图引用的基表中的数据。2.更新视图7.2.27.2.2 使用视图使用视图使用INSERT语句可以通过视图向基表添加数据。 【例7.7】 通过视图xsh_view向课程表添加数据:(101008, 嵌入式软件开发,96)。INSERT INTO xsh_view VALUES(101008,嵌入式开发,96)使用SELECT语句查询

11、xsh_view 依据的基本表课程:SELECT * FROM 课程 注意:当视图所依赖的基本表有多个时,不能向该视图插入数据,因为这将会影响多个基表。例如,不能向视图jiami_view插入数据,因为jiami_view依赖三个基本表:学生,成绩和课程。(1)插入数据7.2.27.2.2 使用视图使用视图使用UPDATE语句可以通过视图修改基本表的数据。【例7.8】将xsh_view视图中所有学生的学时增加4。UPDATE xsh_view SET 学时=学时+4 该语句实际上是将xsh_view视图所依赖的基本表课程中所有学时大于60记录的学时字段值在原来基础上增加4。 当一个视图依赖于多

12、个基本表时,一次修改该视图只能改变一个基本表的数据。(2)修改数据7.2.27.2.2 使用视图使用视图 使用DELETE语句可以通过视图删除基本表的数据,一次只能删除一个基本表的数据。【例7.11】 通过视图xsh_view 删除课程编号为“101008”的课程。DELETE FROM xsh_view WHERE 课程编号=101006 对视图的更新操作也可通过界面进行,操作方法与对表数据的插入、修改和删除的界面操作方法基本相同。(3)删除数据7.2.27.2.2 使用视图使用视图 为了修改视图的定义或者了解视图是从哪些表中得到数据的,需要查看视图的定义。如果视图定义没有加密,即可获得视图

13、定义的有关信息。使用系统存储过程SP_HELPTEXT可以查看视图定义信息。其语法格式如下:EXEC SP_HELPTEXT objname其中:objname指用户需要查看的视图名称。3. 查看视图定义7.2.37.2.3 修改视图修改视图 视图被定义后,可以通过T-SQL语句中的ALTER VIEW语句对其进行修改,对于没加密的视图还可以使用图形界面方式修改。1.修改视图定义(1)使用图形界面方式修改视图 依次展开【数据库】【学生成绩管理系统】【视图】节点,选中要修改的视图,右键单击,选择【设计】菜单项,打开【视图设计器】,在【视图设计器】中修改视图。具体修改方法同创建视图方法类似,可参照

14、创建视图的操作。7.2.37.2.3 修改视图修改视图(2)使用T-SQL语句修改视图ALTER VIEW语句可以修改视图的定义,其语法格式如下:ALTER VIEW view_name ( column ,.n ) WITH ENCRYPTION AS SELECT_statement WITH CHECK OPTION 其中,参数的含义与CREATE VIEW语句中的参数一致。对于加密的与不加密的视图,都可以通过此语句进行修改。7.2.37.2.3 修改视图修改视图【例7.12】 将上面的“xsh_view”视图中的筛选条件变为“学时70”,取消对视图的修改必须满足学时大于70这个条件,取

15、消加密条件。USE 学生成绩管理系统GOALTER VIEW xsh_view ASSELECT 课程编号,课程名称,学时 FROM 课程WHERE 学时707.2.37.2.3 修改视图修改视图 视图被定义后,如果需要对视图名称重新命名,可以通过图形界面方式或存储过程SP_RENAME对视图重新命名。2.重命名视图(1)使用图形界面方式重命名视图 启动【SQL Server Management Studio】,在【对象资源管理器】窗口中,依次展开【数据库】【视图所属数据库】【视图】节点,选择需要重命名的视图右键单击,从弹出的快捷菜单中选择【重命名】菜单项,视图名变为可修改状态,输入新视图名

16、,回车完成视图更名。7.2.37.2.3 修改视图修改视图(2)使用系统存储过程SP_RENAME重命名视图使用系统存储过程SP_RENAME可以很方便地重命名视图,其语法格式如下:SP_RENAME old_name ,new_namel old_name为原视图名称。l new_name为新视图名称。【例7.13】将视图 “xsh_view”重命名为“xueshi_view”。USE 学生成绩管理系统GOSP_RENAME xsh_view, xueshi_view GO7.2.47.2.4 删除视图删除视图 对于不需要的视图,可以使图形界面方式或T-SQL语句中的DROP VIEW语句将其删除。删除视图后,其所对应的数据不会受到影响。如果有其它数据库对象是以此视图为基础建立的,仍可删除此视图,但是再使用那些数据库对象时,将会发生错误。(1)使用图形界面方式删除视图 启动【SQL Server Management Studio】,在【对象资源管理器】窗口中,依次展开【数据库】【视图所属数据库

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论