MySQL知识学习——第二十二天:使用视图

视图是数据库中的虚拟表,不存储数据,仅包含查询语句。使用视图可以简化复杂联结,重新格式化检索数据,以及过滤不需要的信息。视图更新受一定限制,如分组、联结、子查询等情况下无法更新。创建视图的语法为`CREATE VIEW 视图名字 AS SELECT 语句;`,视图常用于数据检索和提供定制化的数据视图。
摘要由CSDN通过智能技术生成

前言

最后八天,加油~

视图

视图,很熟悉又很陌生的一个词。那么什么是视图呢?你可以把它理解成一个表。

视图是虚拟的表。与包含数据的表不一样,视图只包含使用时动态检索数据的查询。

是什么意思呢?我们可以把它看成一个表,但是这个表是虚拟的,也就是说这个表里面是没有数据的,那么它有什么呢?它只有一系列的查询语句。

为什么使用视图

在这里插入图片描述
视图本身不包含数据,因此它们返回的数据是从其他表中检索出来的。在添加或更改这些表中的数据时,视图将返回改变过的数据。

在这里插入图片描述

视图的规则和限制

在这里插入图片描述

#使用视图
在这里插入图片描述

利用视图简化复杂的联结

前面我们提到了,视图只包含一系列查询,所以我们可以视图来简化复杂的联结。

视图的最常见的应用之一是隐藏复杂的SQL,这通常都会涉及联结。

看下面的例子
在这里插入图片描述
上面的例子就是创建了一个视图,视图的创建的语法其实比较简单,规则如下。

create view 视图的名字 as
select 语句;

我们知道视图是一个虚拟的表,那么这个表大致长什么样呢?我们可以从软件的视图选项中看到。
在这里插入图片描述
然后我们就可以对这个虚拟的表进行查询等等操作了。比如:

在这里插入图片描述
在这里插入图片描述

用视图重新格式化检索出的数据

视图的另一常见用途是重新格式化检索出的数据。

我们回忆一下之前的学习的计算字段
在这里插入图片描述

现在,假如经常需要这个格式的结果。不必在每次需要时执行联结,创建一个视图,每次需要时使用它即可。为把此语句转换为视图,可按如下进行:
在这里插入图片描述

这样我们就得到了一个视图,之后每次对这个视图进行操作就可以了。

用视图过滤不想要的数据

视图对于应用普通的WHERE子句也很有用 。
在这里插入图片描述

使用视图与计算字段

视图对于简化计算字段的使用特别有用。
在这里插入图片描述

更新视图

通常,视图是可更新的(即,可以对它们使用INSERT、 UPDATE和DELETE)。更新一个视图将更新其基表(可以回忆一下,视图本身没有数据)。如果你对视图增加或删除行,实际上是对其基表增加或删除行。

但是,并非所有视图都是可更新的。基本上可以说,如果MySQL不能正确地确定被更新的基数据,则不允许更新(包括插入和删除)。这实际上意味着,如果视图定义中有以下操作,则不能进行视图的更新:
 分组(使用GROUP BY和HAVING);
 联结;
 子查询;
 并;
 聚集函数( Min()、 Count()、 Sum()等);
 DISTINCT;
 导出(计算)列。

换句话说,本章许多例子中的视图都是不可更新的。这听上去好像是一个严重的限制,但实际上不是,因为视图主要用于数据检索

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值