SQL视图的创建和使用_第1页
SQL视图的创建和使用_第2页
SQL视图的创建和使用_第3页
SQL视图的创建和使用_第4页
SQL视图的创建和使用_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、第7章 视图的创建和使用1本章学习目标了解视图和数据表之间的主要区别了解视图的优点掌握创建、修改和删除视图的方法掌握查看视图信息的方法掌握通过视图修改数据表的方法27.1 概述37.1.1 视图的概念视图是一种数据库对象,是从一个或者多个数据表或视图中导出的虚表,视图所对应的数据并不真正地存储在视图中,而是存储在所引用的数据表中,视图的结构和数据是对数据表进行查询的结果。根据创建视图时给定的条件,视图可以是一个数据表的一部分,也可以是多个基表的联合,它存储了要执行检索的查询语句的定义,以便在引用该视图时使用。47.1.2 视图的优点简化数据操作:视图可以简化用户处理数据的方式。着重于特定数据:

2、不必要的数据或敏感数据可以不出现在视图中。视图提供了一个简单而有效的安全机制,可以定制不同用户对数据的访问权限。提供向后兼容性:视图使用户能够在表的架构更改时为表创建向后兼容接口。自定义数据:视图允许用户以不同方式查看数据。导出和导入数据:可使用视图将数据导出到其他应用程序。57.2 创建视图在SQL Server 2005中创建视图主要有两种方法:使用SQL Server管理控制台和使用Transact-SQL语句中的CREATE VIEW命令。创建视图之前,应考虑以下基本原则:只能在当前数据库中创建视图。视图名称必须遵循标识符的规则,且对每个架构都必须唯一。必须获取由数据库所有者授予的创建

3、视图的权限。67.2.1 使用SQL Server管理控制台创建视图方法是在SQL Server管理控制台左边的“树”选项卡中展开指定的服务器,打开要创建视图的数据库,右击其中的“视图”对象,从弹出的快捷菜单中选择“新建视图”选项。例7-2-1:创建一个视图,要求显示T_STUDENT表中所有姓张的同学,并按性别进行升序排序。77.2.2 使用Transact-SQL语句创建视图使用Transact-SQL语言中的CREATE VIEW语句创建视图,其语法形式如下:CREATE VIEW schema_name . view_name (column ,.n ) WITH ENCRYPTION

4、 AS select_statement WITH CHECK OPTION ; 87.2.2 使用Transact-SQL语句创建视图其中,各参数的说明如下:schema_name:视图所属架构的名称。 view_name:视图的名称。column:视图中的列使用的名称。AS:指定视图要执行的操作。select_statement:定义视图的 SELECT 语句。97.2.2 使用Transact-SQL语句创建视图CHECK OPTION :强制针对视图执行的所有数据修改语句都必须符合在 select_statement 中设置的条件。ENCRYPTION:对视图文本进行加密。例7-2-2

5、:使用Transact-SQL语句创建一个新视图,命名为VIEW_SCORE,要求基表的来源为:T_STUDENT、T_SCORE和T_COURSE,选择的字段为:T_STUDENT表中的S_NUMBER和S_NAME字段、T_COURSE表中的C_NAME字段及T_SCORE表中的SCORE字段,要求查询的数据为05541班学生的考试成绩。107.2.2 使用Transact-SQL语句创建视图例7-2-3:使用Transact-SQL语句创建新视图VIEW_SCORE_NotPass。对数据表和对字段的选择同上,要求只显示各班不及格的学生的学号、姓名、课程名及成绩。并加密视图的定义。例7-

6、2-3:使用Transact-SQL语句创建新视图VIEW_SCORE_SumAndAverage。要求计算各个班级各门课程的总分及平均分。117.3 查看视图信息在SQL Server中,可以通过SQL Server管理控制台或者使用系统存储过程来查看视图信息。127.3.1 使用SQL Server管理控制台查看视图信息打开SQL Server管理控制台窗口,在SQL Server管理控制台左边的“树”选项卡中选择指定的SQL Server组,展开指定的服务器,打开要查看视图的数据库文件夹,选择“视图”目录。137.3.2 使用系统存储过程查看视图信息系统存储过程sp_help可以显示数据

7、库对象的特征信息,sp_depends可以显示数据库对象所依赖的对象,它们可以在任何数据库对象上运行。sp_helptext可以用于显示视图、触发器或存储过程等在系统表中的定义。它们的语法形式分别如下:sp_help 数据库对象名称sp_helptext 视图(触发器、存储过程)sp_depends 数据库对象名称147.3.2 使用系统存储过程查看视图信息例7-3-1:使用系统存储过程sp_help显示VIEW_SCORE视图的特征信息。例7-3-2:使用sp_helptext显示VIEW_SCORE视图在系统表中的定义。例7-3-3:查看加密视图的定义信息。例7-3-4:使用sp_depe

8、nds显示VIEW_SCORE视图所依赖的对象。157.4 修改和重命名视图如果已定义的视图不能满足用户要求时,可以使用SQL Server管理控制台或Transact-SQL语句修改视图的定义。也可以对现有的视图重新命名。167.4.1 修改视图1使用SQL Server管理控制台修改视图在SQL Server管理控制台中,右击要修改的视图名称,从弹出的快捷菜单中选择“修改”选项,会出现视图的设计窗口。该窗口与创建视图时的窗口相同,可以按照创建视图的方法修改视图的定义。172使用Transact-SQL语句修改视图可以使用Transact-SQL语言中的ALTER VIEW语句修改视图:AL

9、TER VIEW schema_name . view_name ( column ,.n ) WITH ENCRYPTION AS select_statement WITH CHECK OPTION ; 7.4.1 修改视图18注意:如果原来的视图定义是用WITH ENCRYPTION或WITH CHECK OPTION创建的,那么只有在ALTER VIEW中也包含这些选项时,这些选项才有效。例7-4-1:修改视图VIEW_SCORE_NotPass,在该视图中增加一个新的条件,要求只显示高等数学不及格的学生信息。7.4.1 修改视图197.4.2 重命名视图1使用SQL Server管理

10、控制台重命名视图在SQL Server管理控制台中,右击要修改名称的视图,从弹出的快捷菜单中选择“重命名”选项。或者在视图上再次单击,也可以修改视图的名称。当该视图的名称变成可输入状态时,可以直接输入新的视图名称。202使用系统存储过程重命名视图可以使用系统存储过程sp_rename来修改视图的名称,该过程的语法形式如下:sp_rename old_name,new_name例7-4-2:使用系统存储过程sp_rename来完成把视图“VIEW_SCORE_NotPass”重命名为“VIEW_SCORE_NotPass_高等数学”。7.4.1 修改视图217.5 使用视图通过视图可以方便地检索

11、数据,并可以修改基本表的数据,使用视图修改数据时,需要注意以下几点:任何修改都只能引用一个基表的列。在视图中修改的列必须直接引用表列中的基础数据。使用集合运算符得出的计算结果不可更新。修改的数据必须符合对这些列的约束,例如为空性、约束及DEFAULT定义等。227.5.1 插入数据记录1使用SQL Server管理控制台在视图中插入记录具体方法是:在SQL Server管理控制台中,打开要插入记录的数据表对应的视图,在返回的数据记录的最下面一行中直接插入新记录即可。237.5.1 插入数据记录2使用Transact-SQL语句通过视图插入记录注意:如果视图创建时定义了限制条件或者基本表的列允许

12、空值或有默认值,而插入的记录不满足该条件时,此时,仍然可以向表中插入记录,只是用视图检索时不会显示出新插入的记录。如果不想让这种情况发生,则可以使用WITH CHECK OPTION选项限制插入不符合视图规则的视图。这样,在插入记录时,如果记录不符合限制条件就不能插入。247.5.1 插入数据记录例7-5-1:创建一个基于表T_STUDENT的新视图VIEW_STUDENT_05541,要求包含05541班的学生记录。例7-5-2:首先创建一个包含限制条件的视图VIEW_STUDENT_05541_男,限制条件为显示05541班的男同学信息,然后插入了一条不满足限制条件的记录,再用SELECT

13、语句检索视图和表。例7-5-3:在例子7-5-2的基础上添加WITH CHECK OPTION选项。257.5.2 更新数据记录1使用SQL Server管理控制台在视图中更新记录具体方法是:在SQL Server管理控制台中,打开要更新记录的数据表对应的视图,在返回的数据记录窗口中直接修改记录即可。267.5.2 更新数据记录2使用Transact-SQL语句通过视图更新记录例7-5-4:创建一个基于表T_STUDENT的视图VIEW_STUDENT_05541_Modify,条件是显示05541班的学生的学号、姓名和性别,然后通过该视图修改表T_STUDENT中的记录。277.5.3 删除

14、数据记录1使用SQL Server管理控制台在视图中删除记录具体方法是:在SQL Server管理控制台中,打开要删除记录的数据表对应的视图,在返回的数据记录窗口中直接删除记录即可。287.5.3 删除数据记录2使用Transact-SQL语句通过视图删除记录使用视图删除记录时,可以直接利用Transact-SQL语言的DELETE语句删除视图中的记录。但应该注意,如果有删除条件,则WHERE条件中使用到的字段必须是在视图中定义过的字段。例7-5-5:利用视图VIEW_STUDENT_05541,先插入一条记录,然后删除此条记录。297.6 删除视图307.6.1 使用SQL Server管理

15、控制台删除视图打开SQL Server管理控制台窗口,选择要删除的视图,右击该视图名称,从弹出的快捷菜单中选择“删除”选项,会出现“删除对象”对话框。注意:在确认删除之前,应该查看视图的依赖关系窗口,查看是否有数据库对象依赖于将被删除的视图。如果存在这样的对象,那么首先确定是否还有必要保留该对象,如果不必继续保存,可以直接删除掉该视图,否则只能放弃删除。317.6.2 使用Transact-SQL语句删除视图可以使用Transact-SQL语句中的DROP VIEW命令删除视图,其语法形式如下:DROP VIEW view_name ,n可以使用该命令同时删除多个视图,只需在要删除的各视图名称之间用逗号隔开即可。例7-6-1:删除视图VIEW_STUDENT_05541_Modify和视图VIEW_STUDENT_05541_男。327.7 思考与练习1视图和数据表之间的主要区别是什么?2使用视图的优点有哪些?3如何通过SQL Server管

温馨提示

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

评论

0/150

提交评论