MySQL数据库管理与应用任务式教程(微课版)单元6 创建与管理视图.pptx

MySQL数据库管理与应用任务式教程(微课版)单元6 创建与管理视图.pptx

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

;;1.视图的概念

视图(View)是一种基本的数据库对象,它是由基于一个或多个数据表(或视图)的一个查询生成的虚拟表。视图中保存着该查询的定义。

同真实表一样,视图也由列和行构成,但与真实表不同,视图本身并不存储数据,数据存储在视图引用的数据表(通常称为基表)中,视图的行和列的数据来自基表,并且是在使用视图时执行查询语句动态生成的。一旦真实表中的数据发生改变,显示在视图中的数据也会发生改变。

我们可以这样理解,数据库中只存放了视图的定义,视图是一个或多个表(或视图)查询的结果。使用视图查询数据时,数据库会从基表中取出对应的数据,并以二维表的形式呈现出来。视图就像是基表的窗口,它反映了一个或多个基表的局部数据。;2.视图常见的应用

视图在数据库中起着非常重要的作用,常用于以下几个方面。

显示来自基表的部分行数据。如显示学生表xs中所有男同学的信息。

显示来自基表的部分列数据。如显示学生表xs中所有同学的学号、姓名、性别信息。

显示来自基表的统计数据。如统计学生表xs中各专业的学生人数。

显示来自多个基表的复杂查询数据。如显示学生表xs中同一个专业的学生成绩信息,包含学号、姓名、专业名、课程名和成绩列。

简化数据交换操作。如可以将学生成绩信息集中到一个视图中,当需要交换数据时只需将该视图中的数据导出。;3.视图的优点和缺点

(1)视图的优点

定制用户数据。视图可以使用户将注意力集中在其关心的数据上,而不必了解基表的结构,从而屏蔽了数据的复杂性。通过定义视图,用户眼中的数据库结构变得更简单、清晰。

简化数据操作。在使用查询时,很多时候要使用聚合函数,同时还要显示列的信息,可能还需要关联其他表,语句会很长,如果这个动作频繁发生的话,可以创建视图来简化操作。

共享所需数据。使用视图,不必每个用户都定义和存储自己所需的数据,可以共享数据库中的数据,同样的数据只需要存储一次。

视图提供了一个简单而有效的安全机制,能够对数据提供安全保护。在设计数据库应用系统时,可以对不同的用户需求定义不同的视图,使??户看到的只是他该看到的数据,从而达到保护基础数据的目的。一般来说,在使用敏感数据的企业里,视图几乎是唯一可以用来面向普通用户的数据库对象。

数据的完整性。在用户通过视图访问或者更新数据时,数据库管理系统的相关部分会自动地检查数据,确保它满足预先设定的完整性约束。;(2)视图的缺点

性能不稳定。对视图进行查询必须先将其转换为对底层基表的查询。若视图的定义是一个基于多表的复杂的查询语句,可能需要花费很长的时间来处理查询操作。

数据更新受限。由于视图是一个虚拟表,而不是一个实际存在的表,对视图的更新操作实际上是对基表的更新操作。基表的完整性约束必将影响视图,这样视图中的数据更新将受到限制。

数值格式不同。在不同的数据库系统中,由于系统使用的数据类型和系统显示数值的方式有所差别,因此通过视图检索获得的结果中可能有一些数值格式不同的数据。;在MySQL中,可以用CREATEVIEW语句来创建视图,其语法格式如下。

CREATE[ORREPLACE]

[ALGORITHM={UNDEFINED|MERGE|TEMPTABLE}]

[DEFINER=user]

[SQLSECURITY{DEFINER|INVOKER}]

VIEWview_name[(column_list)]

ASselect_statement

[WITH[CASCADED|LOCAL]CHECKOPTION];1.创建基于一个基表的视图

默认情况下,创建的视图的列和基表的列是一样的,可以通过指定视图中列的名称来创建视图。

【例题6.1】在成绩管理数据库cjgl中,创建学生视图,查看各学生的基本信息。

打开MySQLWorkbench,然后打开成绩管理数据库单击工具栏上的“CreateanewSQLtabforexecutingqueries”按钮,创建用于执行查询的新SQL选项卡,打开成绩管理数据库在代码编辑区输入并执行如下语句。

USEcjgl;

CREATEORREPLACEVIEW学生ASSELECT*FROMxs;

可使用SELECT语句查看该视图,执行如下语句,结果如图6-1所示。

SELECT*FROM学生;;【例题6.2】创建男生视图,查看全体男生的学号、姓名、专业名。

通过MySQL命令行客户端执行如下语句。

USEcjgl;

CREATEVIEW男生

AS

SELECT学号,姓名,专业名FROMxsWHERE性别=男;

【例题6.3】创建学生平均成绩视图cj_avg,其中包括

您可能关注的文档

文档评论(0)

87090 + 关注
实名认证
内容提供者

中学高级教师 从事一线教育教研15年多

1亿VIP精品文档

相关文档