MySQL基础复习回顾(五) 视图
什么是视图
定义
一种虚拟存在的表,行和列的数据来自定义视图的查询中使用的表 ,并且是在使用视图时动态生成的,只保存了sql逻辑,不保存查询结果
应用场景
- 多个地方用到同样的查询结果
- 该查询结果使用的sql语句较复杂
示例
CREATE VIEW my_v1
AS
SELECT studentname,majorname FROM student s
INNER JOIN major m ON s.majorid=m.majorid WHERE s.majorid=1;
视图的好处
- 重用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 view [if exists] view_name,view_name ...[restrict|cascade]
查看视图的语法
show tables;
show create view view_name;