- 1、本文档共25页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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,其中包括
您可能关注的文档
- MySQL数据库管理与应用任务式教程(微课版)单元1 mysql的安装、配置与使用.pptx
- MySQL数据库管理与应用任务式教程(微课版)单元2 数据库基本原理.pptx
- MySQL数据库管理与应用任务式教程(微课版)单元3 创建与管理数据库.pptx
- MySQL数据库管理与应用任务式教程(微课版)单元4 创建与管理表.pptx
- MySQL数据库管理与应用任务式教程(微课版)单元5 查询数据.pptx
- MySQL数据库管理与应用任务式教程(微课版)单元7 用户管理.pptx
- MySQL数据库管理与应用任务式教程(微课版)单元8 MySQL数据库备份与恢复.pptx
- MySQL数据库管理与应用任务式教程(微课版)单元9 mysql 数据库编程基础.pptx
- MySQL数据库管理与应用任务式教程(微课版)单元10 存储过程与触发器.pptx
- MySQL数据库管理与应用任务式教程(微课版)单元11 Java+MySQL 人力资源管理系统开发综合实例.pptx
- 人教版九年级英语全一册单元速记•巧练Unit13【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit9【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit11【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit14【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit8【速记清单】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit4【单元测试·提升卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit13【单元测试·基础卷】(原卷版+解析).docx
- 人教版九年级英语全一册单元速记•巧练Unit7【速记清单】(原卷版+解析).docx
- 苏教版五年级上册数学分层作业设计 2.2 三角形的面积(附答案).docx
- 人教版九年级英语全一册单元速记•巧练Unit12【单元测试·基础卷】(原卷版+解析).docx
文档评论(0)