【MySQL上分之路】第十三篇:mysql视图操作?我觉得OK

我觉得ok

MySQL视图

视图是一种虚拟存在的表,同真实的数据表一样具有行列,但是并不实际存在于数据库中,行列中的数据都是来源于定义视图的查询中所使用的表,这些数据是在使用视图时动态生成的

数据库中只存放了视图的定义,视图中的数据都存放在定义视图查询的真实表中,使用视图查询数据时,数据库都会从真实表中取出相对应的数据,一旦真实表中的数据发生了改变,则视图中的数据也会发生改变

视图与表的区别?

  • 视图不是真实的表,是一张虚拟的表,视图的结构和数据是建立在真实表的基础上来的
  • 视图的数据都是来自视图查询时所引用的实际表,使用视图查询时,数据都是动态生成的
  • 视图时数据的窗口,以不同的显示方式展示数据,表是实际存放数据的地方
  • 视图的安全性更高,使用视图的用户不会接触到真实的数据表,不知道表结构
  • 视图的建立和删除只会影响本身,并不会影响到真实表

视图的优点

视图经过定义之后,虽然结构形式与表一样,同时可以进行增删改查等操作,与表相比视图的优势有以下几点:

定义用户数据

在实际开发应用中,不同的用户角色会有不同的需求,可以定义不同的视图来实现特定数据的展示

简化数据操作

当查询字段信息较多并且关联多表时,查询语句会比较长,可以定义视图用来简化SQL操作

提高数据安全性

视图是虚拟的,其数据来源真实表,可以授予用户视图的权限,但不授予表的权限,保护表中基础数据的安全

共享所需数据

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

数据独立

视图的结构确定之后,可以屏蔽表的变化对用户的影响,真实表添加字段时对视图不会有影响,修改字段时,可以直接通过修改视图来解决

视图的注意事项

  • 创建视图时需要获取足够的访问权限
  • 创建视图的数量没有进行限制
  • 视图可以嵌套,可以从其他视图检索数据来创建视图,但是重复的嵌套会影响系统运行性能

视图的操作

视图的主要操作包括创建视图、删除视图、修改视图以及查看视图定义

创建视图

创建视图是指已经存在的数据表上建立视图,视图可以建立在一张表上也可以建立在多张表上

语法格式

CREATE VIEW <视图名> AS <SELECT语句>
语法解析:
视图名:表示指定创建视图的名称,该名称在数据中必须唯一,不能与其他视图名一样
SELECT语句:表示指定创建视图的SELECT语句,可以用于查询多个基础表或者视图

创建视图所引用的表和视图必须真实存在,视图定义时不能引用临时表,也不能创建临时视图

默认情况下创建视图的字段名与真实表中的字段名一样,也可以指定视图的字段名

单表的视图

Mysql视图的创建

多表的视图

mysql视图基于多表

查看视图

视图创建之后,可以通过语句来查看视图的字段信息以及详细信息

查看视图字段信息

语法格式

DESCRIBE 视图名;
DESC 视图名;

在这里插入图片描述

查看视图详细信息

语法格式

SHOW CREATE VIEW 视图名;

mysql视图查看详细

修改视图

修改视图是指在基本表某些字段发生改变时,在已经存在的视图基础上进行相应字段的修改

语法格式

ALTER VIEW <视图名> AS <SELECT语句>
语句解析:
视图名:表示指定要进行修改的视图名称
SELECT语句:指定创建视图的 SELECT 语句

修改视图需要用户具有对视图的创建和删除权限,应为修改视图的定义可以通过删除视图定义然后再创建视图的定义

修改视图中的字段值可以使用UPDATE语句,语句格式与操作正常基础表一样,就不再多说

修改视图内容

mysql视图修改内容

删除视图

删除视图是指对已经存在的视图定义删除,删除视图时,只会删除定义,不会删除数据

语法格式

DROP VIEW <视图名1> [ , <视图名2> …]
语句解析:
视图1、视图2:删除视图可以删除一个和多个视图

mysql视图删除

查看全部视图

MySQL中所有定义的视图都存放在information_schema.VIEWS这个表中,可以查看mysql中所有的视图的详细信息,所属库以及定义查询语句等

语法格式

select * from information_schema.VIEWS

mysql视图查看所有

总结

视图是一张虚拟的表,数据库中只存放了视图的定义,视图中的数据都存放在定义视图查询的真实表中,使用视图查询数据时,数据库都会从真实表中取出相对应的数据,一旦真实表中的数据发生了改变,则视图中的数据也会发生改变

赶紧学习起来吧!我是一个正在努力找回自我的人,希望能和一起学习的人成长,有错误的地方请各位大佬帮忙指正,如果觉得有帮助就点个赞当作对我的一个小肯定❤👍,peace&love

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值