MySQL09-视图
详细的描述了MySQL中的视图。
视图的简介
视图(View)是一种虚拟存在的表。视图中的数据并不在数据库中实际存在,行和列数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的。
通俗的讲,视图只保存了查询的SQL逻辑,不保存查询结果。所以我们在创建视图的时候,主要的工作在创建这条SQL查询语句上。
视图的语法
创建
CREATE [OR REPLACE] VIEW 视图名称 [(列名列表)] AS SELECT 语句[WITH[CASCADED|LOCAL] CHECK OPTION ] |
查询
SHOW CREATE VIEW 视图名称; --查看创建视图语句 |
修改
-- 方式一 |
删除
DROP VIEW [IF EXISTS] 视图名称[视图名称] ... |
视图的检查选项
当使用 WITH CHECK OPTION 子句创建视图时,My5QL会通过视图检查正在更改的每个行,例如插入,更新,删除,以使其符合视图的定义。
MySQL允许基于另一个视图创建视图,它还会检查依赖视图中的规则以保持一致性。为了确定检查的范围,mysql 提供了两个选项: CASCADED和LOCAL,默认值为CASCADED。
cascaded
local
视图的更新
要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系。如果视图包含以下任何一项,则该视图不可更新:
- 聚合函数或窗口函数(SUM()、MIN()、MAX()、COUNT()等)
- DISTINCT
- GROUP BY
- HAVING
- UNION 或者 UNION ALL
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 玖!
评论