第七章视图和触发器课件.pptxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

;学习目标;视图是一种数据库对象,是从一个或多个基表(或视图)导出的虚表。视图的结构和数据是对数据表进行查询的结果。

通过定义SELECT语句检索将在视图中显示的数据来创建视图。SELECT语句引用的数据表称为视图的基表。视图可以被看成是虚拟表或存储查询。

视图被定义后便存储在数据库中,通过视图看到的数据只是存放在基表中的数据。当对通过视图看到的数据进行修改时,相应的基表的数据也会发生变化,同时,若基表的数据发生变化,这种变化也会自动地反映到视图中。

;视图可以是一个数据表的一部分,也可以是多个基表的联合;视图也可以由一个或多个其他视图产生。

视图通常用来进行以下三种操作:

(1)筛选表中的行。

(2)防止未经许可的用户访问敏感数据。

(3)将多个物理数据表抽象为一个逻辑数据表。

视图上的操作和基表类似,但是DBMS对视图的更新操作(INSERT、DELETE、UPDATE)往往存在一定的限制。

视图可以提高数据的逻辑独立性,也可以增加一定的安全性。;(1)视图能够简化用户的操作。

(2)视图使用户能从多种角度看待同一数据。

(3)视图对重构数据库提供一定程序的逻辑独立性。

(4)视图能够对机密数据提供安全保护。;在MySQL中,使用CREATEVIEW语句创建视图。语法格式如下:

CREATE[ORREPLACE]

[ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]

VIEW视图名[(字段名列表)]

AS

select语句

[WITH[CASCADED|LOCAL]CHECKOPTION]?

;语法格式中相关子句和参数说明:

(1)ORREPLACE:表示当已具有同名的视图时,将覆盖原视图。

(2)ALGORITHM子句:可选项,表示视图选择的算法。ALGORITHM可取三个值:MERGE、TEMPTABLE或UNDEFINED。如果没有ALGORITHM子句,默认算法是UNDEFINED(未定义的)。算法会影响MySQL处理视图的方式。;MERGE:会将引用视图的语句的文本与视图定义合并起来,使得视图定义的某一部分取代语句的对应部分。

TEMPTABLE:视图的结果将被置于临时表中,然后使用它执行语句。

UNDEFINED:由MySQL选择所要使用的算法。如果可能,它倾向于MERGE而不是TEMPTABLE,这是因为MERGE通常更有效,而且如果使用了临时表,视图是不可更新的。;(3)字段名列表:指定??图中查询结果的字段名,如果没有此可选项,视图中查询结果的字段名和尚SELECT子句中的字段名一致。

(4)WITHCHECKOPTION:对于可更新视图,给定WITHCHECKOPTION子句用来防止插入或更新行,除非作用在行上的select_statement中的WHERE子句为“真”。

在可更新视图中加入WITHCHECKOPTION子句,当视图是根据另一个视图定义时,LOCAL和CASCADED关键字决定了检查测试的范围。LOCAL关键字对CHECKOPTION进行了限制,使其仅作用在定义的视图上,CASCADED会对该视图相关的所有视图和基表进行检查。如果未给定任一关键字,默认值为CASCADED。

;创建视图时要求创建者具有针对视图的CREATEVIEW权限,以及针对由SELECT语句选择的每一列上的某些权限。对于在SELECT语句中其他地方使用的列,必须具有SELECT权限。如果还有ORREPLACE子句,必须在视图上具有DROP权限。

视图属于数据库。在默认情况下,将在当前数据库创建新视图。要想在给定数据库中创建视图,创建时,应将名称指定为数据库名.视图名。

;在“学生选课”数据库中创建一个基于teacher表的视图

teacher_view,该视图要求查询输出所有教师的姓名tname、职称tpro。;执行上述语句,就在“学生选课”数据库中创建了视图

teacher_view。

使用SELECT语句查询teacher_view视图,可以看到结果如图所示。

;在“学生选课”数据库中创建一个基于teacher表的视图teacher1_view,

该视图要求查询输出所有教师的tname、tgender、tpro,并将视图中的字段名设为教师姓名、教师性别和教师职称。;在“学生选课”数据库中创建一个基于学生表studentInfo、

课程表course和选课表eletive的视图nopass_view,该视图要求查询输出

所有不及格学生的学号sno,姓名sname,课程名cname,成绩score。

;1、使用DESCRIBE查看视图

在MySQL中,使用权DESCRIBE语句可以查看视图的字段信息,

包括字

您可能关注的文档

文档评论(0)

方世玉 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:6101050130000123

1亿VIP精品文档

相关文档