视图

  • 含义:虚拟的表,和普通表一样使用。是通过普通表动态生成的数据。只保存sql逻辑,不保存查询结果。
  • 应用场景:
  1. 多个地方用到同样的查询结果
  2. 该查询结果使用的sql语句较复杂

一、视图的创建

语法:

create view 视图名
as
查询语句

例1:查询姓名中包含a字符的员工名、部门名和工种信息

1.创建
create view myv1
as
select last_name,department_name,job_title
from employees e
join departments d on e.department_id = d.department_id
join jobs j on j.job_id = e.job_id;

2.使用
select * from myv2 where last_name like '%a%;'

二、视图的好处

  1. 重用sql语句
  2. 简化复杂的sql操作,不必知道它的查询细节
  3. 保护数据,提高安全性

三、视图的修改

方式一:

create or replace view 视图名
as
查询语句

方式二:

alter view 视图名
as 
查询语句

四、视图的删除

语法:
drop view 视图名,视图名,...;

五、视图的查看

  1. desc 视图名;
  2. show create view 视图名;

六、视图的更新

视图的更新与表的更新相同,但对其进行的修改相当于在原表上进行修改
具备以下特点的视图不允许更新:

  1. 包含以下关键字的sql语句:分组函数、distinct、group by、having、union或者union all
  2. 常量视图
  3. select中包含子查询
  4. join:可以修改但不能插入
  5. from一个不能更新的视图
  6. where子句的子查询引用了from子句中的表

视图和表的比较

  1. 视图不实际占用物理空间(只保存了sql逻辑),表占用实际物理空间
  2. 视图一般不修改
原文地址:https://www.cnblogs.com/ylcc-zyq/p/13139366.html