SQL-Server-2012数据库技术与应用08_第1页
SQL-Server-2012数据库技术与应用08_第2页
SQL-Server-2012数据库技术与应用08_第3页
SQL-Server-2012数据库技术与应用08_第4页
SQL-Server-2012数据库技术与应用08_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、第8章 视图SQL Server 2012数据库技术与应用目录8.1 视图的基本概念8.2 T-SQL管理视图8.3 使用SSMS管理视图8.4 操作视图数据8.1 视图的基本概念视图是数据库中一个重要的对象,通过项目的学习,要求了解什么是视图,了解使用视图的优点,比如简化操作提高数据安全性,掌握如何创建管理视图。在项目中,主要介绍视图的重要概念和视图的各类操作。通过学习,要求掌握视图是一个虚拟表,其内容由查询定义。同真实的表一样,视图包含一系列带有名称的列和行数据。视图在数据库中并不是以数据值存储集形式存在的。行和列数据来自由定义视图的查询所引用的表,并且在引用视图时动态生成。视图具有集中数

2、据、屏蔽数据复杂性、简化权限管理、提高安全性等优点。8.1 视图的基本概念例如,要想查询来自“上海”的客户所订购货品记录以及客户信息,需要使用INNER JOIN运算符连接Customers、Goods、Orders这三个表,所用查询语句如下。USE ManageSELECT a.BuyerID,a.BuyerName,a.Address,b.WareName,c.Stock,b.SaleID,c.Price FROM Buyer a INNER JOIN Sales b ON a.BuyeID=b. BuyeID INNER JOIN Wares c ON b.WaresName=c.War

3、esName WHERE a.Address LIKE 上海%8.1 视图的基本概念上述查询语句引用了3个表,语句本身非常长,如果经常查询这样的信息,就要重复输入上述语句,这显然是比较麻烦的。比较合理的办法是在上述查询语句的基础上建立视图,来简化数据检索的操作。8.1 视图的基本概念使用视图有很多优点: 1为用户集中数据、简化查询和处理 2屏蔽数据库的复杂性 3简化用户权限的管理 4实现真正意义上的数据共享 5重新组织数据8.1 视图的基本概念在创建或使用视图时应该注意到以下情况: 1尽管可以引用其他数据库的表和视图,所创建的视图也可以被其他数据库引用,但创建视图只能在当前数据库中进行,创建视

4、图不能引用临时表。 2视图的命名必须遵循标识符命名规则,在一个数据库中对每个用户所定义的视图名必须是唯一的,也不能与表同名, 3一个视图最多只能引用1024个字段。8.1 视图的基本概念在创建或使用视图时应该注意到以下情况: 4可以引用其他视图或被其他视图引用,但视图嵌套引用不能超过32层。 5不能把规则、默认值或触发器绑定在视图上。 6不能在视图上建立任何索引。 7在默认情况下,视图中的列名继承所引用基表或视图中的列名,如果引用的计算列没有指定别名,或者需要同时引用多表或多视图中的同名列,则必须指定列名。8.1 视图的基本概念在创建或使用视图时应该注意到以下情况: 8定义视图的SELECT查

5、询语句不能包含INTO(创建表)、ORDER BY(排序)、COMPUTE BY (带详细信息的分组统计)子句。 9使用视图时,如果它引用的基本表添加了新字段,则必须重新创建或修改视图才能查询使用新字段。 10如果与视图相关联的表或视图被删除,则该视图将不能再使用。8.2 T-SQL管理视图创建视图的语法格式如下:CREATE VIEW 数据库名.框架名称.视图名 (列名1, 列名2 , n ) WITH ENCRYPTION AS SELECT查询语句 WITH CHECK OPTION 8.2 T-SQL管理视图8.2 T-SQL管理视图语法说明如下:(1)列名:视图显示时使用的标题,若直

6、接使用SELECT指定的列名且其中没有相同的也没有未指定别名的计算列,则可以省略,只要有一个需要指定列标题,则要全部写出。最多可引用1024个列。(2)ENCRYPTION:要求系统存储时对该CREATE VIEW语句进行加密,不允许别人查看和修改定义语句。8.2 T-SQL管理视图语法说明如下:(3)CHECK OPTION:与定义视图中SELECT语句的WHERE子句配合使用,指定对视图中数据的修改必须遵守WHERE子句设置的条件,不满足条件的数据不允许修改,保证修改后的数据能通过视图查看。省略时可以在不违反约束前提下对数据任意修改,但修改后不满足条件的记录不再出现在视图中。(4)SELE

7、CT查询语句:指定视图中使用数据的范围,可用多个基表或视图作数据源,但不能用临时表或表变量,不能使用INTO、COMPUTE、ORDER BY子句。8.2 T-SQL管理视图【任务8.1】 使用CREATE VIEW语句创建视图,创建价格大于50元的货品信息的视图,视图名为View1。8.2 T-SQL管理视图注意:该视图省略了列名,则全部默认使用SELECT中指定的字段名称。SELECT是视图对象的数据来源,查询结果集不显示在屏幕上,而是提供给视图对象。查询语句中的WHERE子句与定义视图时的WHERE子句是没有关系的,定义视图的WHERE子句限制视图结果集的记录,使用视图查询的WHERE子

8、句是在视图结果集中再挑选满足条件的记录。8.2 T-SQL管理视图【任务8.2】 用SQL语句创建视图,查询在2011年中每个客户的购买货物情况,并禁止用户查看视图的定义语句。8.2 T-SQL管理视图1使用sp_help查看视图的基本信息使用sp_help查看视图基本信息的语法格式如下。EXECUTE sp_help视图名8.2 T-SQL管理视图【任务8.3】 查看所创建视图View1的基本信息。8.2 T-SQL管理视图2查看视图的定义信息在创建视图时,如果定义语句中带有WITH ENCRYPTION字句,则表示对视图的定义信息进行了加密,不能查看其定义信息。若定义视图时省略了该子句,则

9、可以使用sp_helptext查看视图定义信息,其语法格式如下。EXECUTE sp_helptext视图名8.2 T-SQL管理视图【任务8.4】 使用存储过程查看视图。(1)查看视图View1的定义信息。(2)查看视图View2的定义信息。8.2 T-SQL管理视图3查看视图与其他数据库对象间的依赖关系如果我们想知道视图中的数据来源于哪些数据对象,哪些数据对象引用了视图中的数据,则可以使用sp_depends查看视图与其他数据对象之间的依赖关系。其语法格式为如下:EXECUTE sp_depends视图名8.2 T-SQL管理视图【任务8.5】 查看视图View2与其他数据库对象的关系。8

10、.2 T-SQL管理视图ALTER VIEW语句提供了修改视图的功能,其基本语法格式如下。ALTER VIEW 数据库名.框架名称.视图名 (列名1, 列名2 , n ) WITH ENCRYPTION AS SELECT查询语句 WITH CHECK OPTION 8.2 T-SQL管理视图【任务8.6】 使用ALTER VIEW语句修改视图的实现过程。在MANAGE数据库中基于Wares表创建一个名为View3的视图,然后用ALTER VIEW语句修改这个视图,并且加上WITH ENCRYPTION子句和WITH CHECK OPTION子句。8.2 T-SQL管理视图【任务8.7】 使用

11、ALTER VIEW语句修改视图。8.2 T-SQL管理视图使用视图向数据库中添加记录有各种条件限制:(1)用户有向数据表插入数据的权限。(2)视图只引用表中部分字段,插入数据时只能向明确指定的字段赋值。(3)未引用的字段应具备下列条件之一:允许空值,设有默认值,是标识字段,数据类型是timestamp或uniqueidentifer。8.2 T-SQL管理视图(4)视图不能包含多个字段的组合。(5)视图不能包含使用统计函数的结果。(6)视图不能包含DISTINCT或GROUP BY子句。(7)定义视图使用WITH CHECK OPTION,则插入数据应符合相应条件。(8)若视图引用多个表,一

12、条INSERT语句只能操作一个基表的数据。8.2 T-SQL管理视图同样,通过视图对数据进行更新与删除时需要如下。(1)执行UPDATE、DELETE时,所删除与更新的数据必须包含在视图结果集中。(2)如果视图引用多个表时,无法用DELETE命令删除数据。若使用UPDATE,则应与INSERT操作一样,被更新的列必须属于同一个表。8.2 T-SQL管理视图删除视图的语法格式如下。DROP VIEW 数据库名.框架名称.视图名 , n8.2 T-SQL管理视图【任务8.8】 删除视图View1。8.3 使用SSMS管理视图选择【新建视图】命令。打开SSMS,在【对象资源管理器】中,右键单击【视图

13、】节点,在弹出的菜单中选择【新建视图】,可以创建视图。8.3 使用SSMS管理视图【任务8.9】 创建View4视图。8.3 使用SSMS管理视图查看视图内容与查看表内容一致,在对象资源管理器中选中要查看的视图,右键单击,在弹出的菜单中选择【选择前1000行】,可以查看视图内容,如图8.17所示。8.3 使用SSMS管理视图在对象资源管理器中选中要删除的视图,右键单击,在弹出的菜单中选择【删除】,可以删除对应视图,如图8.19所示。8.4 操作视图数据【任务8.10】 查询View2视图中的所有信息(见图8.20)。8.4 操作视图数据在视图上使用INSERT语句添加数据时,要符合以下规则:(

14、1)用户必须有插入数据的权利。(2)由于视图只引用表中的部分字段,所以通过视图插入数据时只能明确指定视图中引用的字段的取值。而那些表中并未引用的字段,必须知道在没有指定取值的情况下如何填充数据,因此视图中未引用的字段必须具备下列条件之一。 该字段允许空值。 该字段设有默认值。8.4 操作视图数据 该字段是标识字段,可根据标识种子和标识增量自动填充数据。 该字段的数据类型为timestamp或uniqueidentifier。(3)视图中不能包含多个字段值的组合,或者包含使用统计函数的结果。(4)视图中不能包含DISTINCT或GROUP BY子句。(5)如果视图中使用了WITH CHECK OPTION,那么该子句将检查插入的数据是否符合视图定义中SELECT语句所设置的条件。如果插入的数据不

温馨提示

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

评论

0/150

提交评论