视图的作用:
视图不仅可以简化用户对数据的理解,也可以简化他们的操作,经常使用的查询可以定义为视图,不用每次指定全部的条件。
数据库可以授权,但不能授权到数据库特定的列上,通过视图可以查询和更改他们所见到的数据。
//创建视图
create [or pleace] view 视图名称 as select 字段名 from 表名 [ where 条件] [ with cascaded(local) check option ]
//查看创建视图语句
SHOW CREATE VIEW 视图名称;
//查看视图数据(和查询表操作一样)
SELECT * FROM 视图名称;
//修改视图
1:create [or pleace] view 视图名称 as select 字段名 from 表名 [ where 条件];
2:alter view 视图名称 as select as select语句;
//删除视图
DROP VIEW [id exists] 视图名称;
当使用WITH CHECK OPTION子句创建视图时,MYSQL会通过视图检查正在更改的每一行,例如插入更新删除,以符合视图定义。MYSQL允许给予另一个视图创建视图,它还会检查视图中的依赖以保持一致性。MYSQL提供两种选项检查选项:默认值为casecaded
·cascaded : 表示插入数据时会检查是否满足创建视图及其关联视图的限制语句,不管关联视图有没有写限制语句。
- 在
WITH CHECK OPTION
子句中指定CASCADE
时,MySQL 会检查所有受影响的行,包括基础表和依赖于其他视图的视图。 - 这意味着如果更改导致任何其他视图的不一致,MySQL 将递归地检查和拒绝这些更改。
·local : 和cascaded的区别在于local只会递归检查其关联视图同样写了local限制语句的视图。
- 在
WITH CHECK OPTION
子句中指定LOCAL
时,MySQL 仅检查直接受到更改影响的行,而不检查其他视图的影响。 - 这意味着如果更改导致其他视图的不一致,MySQL 将仅拒绝对当前视图直接影响的行的更改,而不会递归检查其他视图。
视图的增删改操作和表操作是一样的。
而且视图的插入操作时,表中的数据也会跟着改变;
视图的更新时,视图和表中的行必须一一对应。