MySQL中的视图详解

一.什么是视图?

简单来说,视图就是从一张表中导出的虚拟表。视图拥有表的结构,但是在数据库中只有视图的定义,但是没有视图中的数据。

视图是由查询语句从一张表中导出来的数据,不是一张实际的表。

二.视图的作用

最大的用处就是将程序与表隔离开来,增加了安全性和简单性。

三.创建视图

创建视图是指在已有的表上创建视图,你可以在一张表上创建视图,你也可以在多张表上创建视图。

3.1查看创建视图的语法:

select Select_priv(表名用户是否有查询的权限),Create_view_priv(查看用户是否有建视图的权限) FROM   数据库.表名  WHERE  user=”用户名”

例子:

select Select_priv ,Create_view_priv from mysql.user where user="root";

 

结果:

3.2创建视图步骤:

语法:create  view   视图名(视图中列属性)    as  select语句 ;(最简单化)

例子:首先我们来看看我们建立的表:

select * from text2;

 

 结果:

创建语法:

create view v(vid,vnum1,vday) as select tid,tnum1,tday from text2;

 

 查看:

SELECT * FROM study.v;

 

 结果:一模一样

四.视图操作

 4.1查看视图的结构:使用关键字  describe

 例子:

describe v;

 

 结果:

4.2修改视图

当视图基于表的数据改变时,那么我们就需要将修改视图来将视图和表的字段相同。

4.2.1使用关键字:create or replace view     使用这个语句当这个视图不存在时,他会自动创建一个表,如果他存在那么他将刷新一个表

语法:create  or  replace view 视图名【(属性清单)】  as  select语句

 4.2.2使用关键字alter

语法:alter view 视图名 as select语句

五.更新视图

更新视图和更新表是一样的,同样也是使用update 语句

 但是存在一点点的小小的限制在修改视图时。

以下几种情况不能更新视图

1.视图中含有聚合函数比如count( ),sum( ),max( ),min( )

2.视图中含有union,union all,distinct,group by having等聚合有关的关键字

3.常量视图

4.视图中包含子查询

六.删除视图

语法:drop view if exists 视图名

 

posted on 2018-09-25 15:34 真正的小明被占用了 阅读() 评论() 编辑 收藏

版权声明:本文为SAM-CJM原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/SAM-CJM/p/9685658.html