概念:MySQL视图(View)是一种虚拟存在的表,同真实表一样,视图也是列和行组成,但视图并不实际存在于数据库中。行和列的数据来自于定义视图的查询中所使用的表,并且还是在使用视图时动态生成的。
简单
视图不仅可以简化用户对数据的理解,也可以简化他们的操作。那些被经常使用的查询可以定义为视图,从而使得用户不必为以后的操作每次都指定全部的条件
安全
数据库可以授权,但不能授权到数据库特定行和特定的列上。通过视图用户只能查询和修改他们能看到的数据
数据独立
视图可帮助用户屏蔽真实表结构带来的影响
创建视图
CREATE OR REPLACE VIEW VIEW_NAME AS SELECT ... FROM TB_NAME ...;
查看创建视图语句
SHOW CREATE VIEW VIEW_NAME;
查看视图数据
SELECT ... FROM VIEW_NAME;
修改视图
修改方式1
CREATE OR REPLACE VIEW VIEW_NAME AS SELECT ... FROM TB_NAME ...;
修改方式2
ALTER VIEW VIEW_NAME AS SELECT ... FROM ...;
DROP VIEW IF EXISTS VIEW_NAME;
视图除了可以创建在表之上外还可以创建在其他视图之上
CREATE VIEW VIEW_NAME AS SELECT ... FROM VIEW_NAME2 ...
CASCADED:递归向下检查,凡是视图创建语句中带有条件的一并进行检查判断是否满足条件
LOCAL:递归向下检查,但是只检查视图创建语句中带有CASCADED或LOCAL约束的条件
如果在顶层视图不使用CASCADED或者LOCAL则忽略下层检查选项
CREATE VIEW VIEW_NAME AS SELECT ... FROM ... WHERE ... WITH [CASCADED|LOCAL] CHECK OPTION;