视图
一次复杂的数据在查询时需要关联多表得出结果,视图的作用就是将这些数据预先生成为一张虚拟的表,便于直接查询
查看视图
show create view view_name;
创建视图
create view view_name as
select xx,xx
from xx,xx
where xx
删除视图
drop view view_name;
更新视图
可以先删除再创建,也可以使用create or replace view
检查选项
对于视图的操作可以进行插入、修改、删除的,但是对于创建的视图有条件,通过视图插入的数据可能并不能查询到,对于这种情况可以对视图设置检查,防止这种数据的操作
create view view_name as
select xx,xx
from xx,xx
where xx
width local check option
对于视图的数据操作,会对其进行检查,防止出现违背创建视图语句的数据,保证视图数据的一致性
视图的更新
要使视图可更新,视图中的行与基础表中的行之间必须存在一对一的关系,以下情况视图将不可更新:
- 聚合函数或窗口函数(SUM()、MIN()、MAX()、COUNT()等)
- DISTINCT
- GROUP BY
- HAVING
- UNION或UNION ALL
视图的作用
- 简化SQL查询,不用每次都写复杂的SQL语句
- 安全,数据库的授权并不能授权到数据库特定行和特定的列,通过视图可以
- 数据独立,视图可帮助用户屏蔽真实表结构变化带来的影响