视图:虚拟表,和普通表一样,MySQL5.1版本出现的新特性,是通过表动态生成的数据
应用场景:
- 多个地方用到同样的查询结果
- 该查询结果使用的sql语句比较复杂
创建视图:
create view 视图名
as
查询语句;
案例:查询姓张的学生名和专业名
select stuname,majorname
from stuinfo s
inner join major m on s.majorId=m.id
where stuname like '张%';
create view v1
as
select stuname,majorname
from stuinfo s
inner join major m on s.majorId=m.id;
select *
from v1
where stuname like '张%';
修改视图
方式一:
create or replace view 视图名
as
查询语句;
方式二:
alter view 视图名
as
查询语句;
删除视图
可以同时删除多个视图
drop view 视图名1,视图名2,…;
查看视图结构
desc 视图名;
具备以下特点的视图不允许更新
- 包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
- 常量视图
- select中包含子查询
- join
- from一个不能更新的视图
- where子句中的子查询引用了from子句中的表
视图的好处
- 重用了sql语句
- 简化复杂的sql操作,不必知道他的查询细节
- 保护数据,提高安全性