前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL视图的创建与使用

MySQL视图的创建与使用

作者头像
大猫的Java笔记
发布2020-09-30 02:02:11
2.2K0
发布2020-09-30 02:02:11
举报
文章被收录于专栏:大猫的Java笔记

学习点:

1.什么是视图?

2.为什么要使用视图?

3.视图应该怎么使用呢?

1.什么是视图?

视图是MySQL的一种虚拟表,实际的表我们可以看到每一行的数据,而视图是另一种形式的表,他可以将任何的查询结果变成一种虚拟的表方便下一次进行查询。

2.为什么要使用视图?

1.可重用

2.简化复杂的SQL

3.使用表的组成部分而不是整个表

4.保护数据,可以给用户授予表的特定部分的访问权限而不是整个表的访问权限

3.怎么使用视图?

例如如下两张表,表中可以看出班级表和学生表两个表关系是1对多的,外键在学生方。

假如我现在要查询班级为三国演义的所有学生应该怎么查询?可能你想到了用内连接Inner join 或者外连接的Left join或rigth join,然后查询结果如下所示。

结果显然意见是没有错误的,张飞和关羽都被查询出来了.但是你会发现这样写重用性太差了,如果我又要查询水浒传班那么又要编写这么长的一条两表连接SQL,而视图的优点就在于此可重用性,可以让用户少写很多重复的SQL.接下来我们开始创建视图并使用视图来对比一下。

结果可以看出来视图创建以后我们少写了很多代码,且重用性也很强,其实视图就相当于给查询的结果取了一个别名,且这个别名包含查询的结果,我们下一次用的使用直接用别名就行了也就是视图。

4.视图更新的注意点

迄今为止所有试图都是和SELECT语句使用的,然后视图是否可以更新呢?得视情况而定.

通常,视图是可更新的(即,可以对他们进行INSERT,UPDATE和DELETE)但是更新视图将更新基表,因为视图本身没有数据如果对视图进行增删改实际上是对基表进行增删改.

但是,并不是所有视图都是可更新的,如果MySQL不能正确地确定被更新的基数据,则不允许更新,如果视图定义中有以下操作,则不能更新视图;   

1.分组(使用GROUP BY和HAVING)

2.联结

3.子查询

4.并

5.聚合函数

6.DISTINCT

7.导出(计算)列

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2019-07-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 大猫的Java笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档