视图

视图:(view)是一种虚拟存在的表,是一个逻辑表,本身并不包含数据。作为一个select语句保存在数据字典中的。和真实的表一样包含一系列带有名称的行和列数据。数据是从一个或多个表中导出来的数据的结果,我们可以通过DML语句(insert、update、delete)来操作视图当中的数据。当视图当中的数据被修改时,基表当中的数据也会被修改,反之也一样
通过视图,可以展现基表的部分数据;试图数据来自定义视图的查询中使用的表,使用视图动态生成。
基表:用来创建视图的表叫做基表 base table

因为视图的诸多优点,如下
(1)简单:使用视图的用户完全不需要关心后面对应的表的结构、关联条件和筛选条件,对用户来说已经是过滤好的复合条件的结果集。
(2)安全:使用视图的用户只能访问他们被允许查询的结果集,对表的权限管理并不能限制到某个行某个列,但是通过视图就可以简单的实现。
(3)数据独立:一旦视图的结构确定了,可以屏蔽表结构变化对用户的影响,源表增加列队视图没有影响;源表修改列名,则可以通过修改视图来解决,不会造成对访问者的影响。
总而言之 使用视图的大部分情况是为了保障数据安全性,提高查询效率。

创建视图

CREATE [OR REPLACE] [ALGROLTHM = UNDEFINED|MERGE|TEMPTABLE] VIEW 视图名称(视图字段名列表)AS select_statement [ WHITH [CASCADED|LOCAL] CHECK ON]

OR REPLACE: 用于修改已经创建好的视图的结构(如果视图不存在,那就创建视图)
ALGROITHM:选择select语句运算方法:
UNDEFINED :MySQL自动选择算法;
MERGE:合并,表示将视图设置的字段名称和select语句从表中获取的字段和内容合并;
TEMPTABLE : 临时表 表示将视图的结果存入临时表 然后用临时表来执行语句;
column_list : 定义的视图当中的字段名称;
select_statement:查询语句;
WHITH [CASCADED|LOCAL] CHECK OPTION:
CASCADED:默认为CASCADED,表示更新视图时,需要满足所有相关视图和表的条件限制;
LOCAL : 表示更新视图时,满足该视图本身定义的条件即可
在这里插入图片描述
show create view v_book\G
在这里插入图片描述
查看视图详细信息:
在mysql中,视图的信息存储在information schema数据库下的views表中
语法:
show create view 视图名\G
select * from information_schema.views\G

修改视图:
create or replace view 视图名 as select * from
alter view 视图名 as select * from 表名

更新视图:
update
修改视图,基表里面对应的数据也会被修改

视图存在以下情况时,更新操作无效:
1.视图中不包含基表中被定义为非空的列
2.在定义视图的select语句后的字段列使用了数学表达式
3.在定义视图的select语句里使用了聚合函数
4.select语句中使用了union,group by,order,having

删除视图:
drop view 视图名;

mysql中视图和表的区别以及联系:
区别:
1.视图是已经编译好的SQL语句的结果集,是基于SQL语句结果集的可视化的表,而表不是
2.视图没有实际的物理记录,而表有
3.表是内容,视图是窗口
4.表和视图虽然都占用物理空间,但是视图只是逻辑概念存在
5.视图是查看表数据的一种方法,可以查询数据表中某些字段构成的数据,只是一些SQL语句集合,从安全角度来说,视图可以防止用户接触数据表,因而不知道表结构
6.表属于全局模式中的表,是实表。视图是属于局部模式的表,是虚表
7.视图的建立和删除只影响视图的本身,而不影响对应的基本表
联系:
视图是在基本表之上建立的表,它的结构和内容都来自于基本表,它依赖基本表存在而存在,一个视图可以对应一个基本表或多个。

https://www.cnblogs.com/geaozhang/p/6792369.html#mulu

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值