1.什么是视图?
视图是用来查看一张表里面的部分数据,可以看做一张虚拟的表,但其物理上是不存在的,Mysql并没有专门的位置为视图存储数据。根据视图的概念可以发现其数据来源于查询语句。
2.创建和查看视图的语句
基本语法:CREATE[or REPALCE] VIEW viewname[columnlist] as SELECT statement;
其中 CREATE表示创建新的视图,REPLACE替换已经创建的视图,viewname为视图的名称,columnlist为属性列,select statement 表示select语句
**注意:**创建视图需要用户有相应的权限,查看权限的方法
select user,select_priv,create_view_priv from mysql.user;
单表的视图创建
多表的视图创建
这里class表中的name和student表里面的name起了冲突
所以必须给其中一个表里面的名字起一个别名:
注意:对于表的操作对于视图同样可以
视图可以被当作表查询,但它与表不同,命名的时候要注意这一点,不要搞混了
3.修改视图的数据
更新视图是指通过视图来插入,更新,和删除表中的数据,应为视图实质上是一个虚拟表,其中没有数据,通过视图更新是都是转换到基本表中更新。更新视图时,只更新权限范围内的数据,超出范围就不能更新了
有以下情况不能更新视图:
1.视图中包含SUM(),count()和MAX(),MIN()等函数
2.视图包含UNION,UNION all,distinct ,GROUP BY和HAVING等关键字
3.视图对应的表存在没有默认值的列,而且 该列没有包含在视图里面
4.包含子查询的视图.
4.删除视图
视图需要注意:视图是基于原来的表创建的,如果与视图相关的表的那几行属性名字发生改变,视图无法再被查询