字节流的博客

MySQL 视图

1. 视图的优势

  • 简单
  • 安全
  • 数据独立

2. 创建视图

1
2
3
4
CREATE [OR REPLACE] [ALGORITHM= {UNDIFIEND | MERGE | TEMPTABLE}]
VIEW view_name [(clolumn_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]

3. 修改视图

1
2
3
4
ALTER [ALGORITHM= {UNDIFIEND | MERGE | TEMPTABLE}] 
VIEW view_name [(clolumn_list)]
AS select_statement
[WITH [CASCADED | LOCAL] CHECK OPTION]

4. 删除视图

1
DROP VIEW view_name

5. 视图的限制

视图不仅可以查询,还可以删除和更新,即视图的可更新性。但是,视图的可更新性是有限制的,视图的可更新性与创建视图时的查询语句有关:

  • SQL 语句不能包含聚合函数;
  • 常量视图;
  • select 中包含子查询;
  • join;
  • from 一个不可更新的视图;
  • where 子句的子查询用到了 from 中的表;

6. CHECK OPTION

[WITH [CASCADED | LOCAL] CHECK OPTION]

  • CASCADED:级联,在更新视图时,要满足该视图对应的所有视图的条件时才可以进行更新操作;
  • LOCAL:在更新视图时,只要满足本视图条件就可以进行更新操作;
  • 默认情况下,即 WITH CHECK OPTION 默认是 CASCADED 限制;

7. 查看视图

show tables 可以显示创建的视图,没有单独的 show views 命令;

Thanks! 😊