第10节 视图
目 标
- 什么是视图
- 创建或修改视图
- 删除视图
- 查看视图
什么是视图
视图: MySQL从5.0.1版本开始提供视图功能。一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果
应用场景:
- 多个地方用到同样的查询结果
- 该查询结果使用的sql语句较复杂
示例:
视图的好处
- 重用sql语句
- 简化复杂的sql操作,不必知道它的查询细节
- 保护数据,提高安全性
创建或者修改视图
创建视图的语法:
create [or replace] view view_name
As select_statement
[with|cascaded|local|check option]
修改视图的语法:
alter view view_name
As select_statement
[with|cascaded|local|check option]
视图的可更新性和视图中查询的定义有关系,以下类型的视图是不能更新的。
- 包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
- 常量视图
- Select中包含子查询
- join
- from一个不能更新的视图
- where子句的子查询引用了from子句中的表
删除视图
删除视图的语法:
用户可以一次删除一个或者多个视图,前提是必须有该视图的drop权限。
drop view [if exists] view_name,view_name …[restrict|cascade]
查看视图
查看视图的语法:
show tables;
如果需要查询某个视图的定义,可以使用show create view命令进行查看:
show create view view_name \G