Skip to content

Latest commit

 

History

History
96 lines (76 loc) · 1.71 KB

08 视图讲解.md

File metadata and controls

96 lines (76 loc) · 1.71 KB

8.视图讲解

/*
含义:虚拟表,和普通表一样使用
只保存sql逻辑,不保存查询结果
mysql5.1版本出现的新特性,通过表动态生成的数据。
相当于方法,比较好用。

比如:舞蹈班和普通班级的对比、

视图和表的对比:
		创建语句       是否占用物理空间          使用
视图 create view   没有,只是保存了sql逻辑  增删改查,一般不能增删改

表   create table  占用,保存了实际数据     正常增删改查
 
*/

#一、创建视图
/*
语法:
reate view 视图名
as
查询语句;
(套娃)

优点:
1、重用sql
2、简化复杂的操作
3、保护数据提高安全性
*/

#二、视图的修改

#方式一:
/*
语法:
create or replace view 视图名
as
查询语句; 
*/

select * from myv3
create or replace view myv3
as
select avg(salary), job_id
from employees
group by job_id;

#方式二
/*
语法:
alter view 视图名
as 
查询语句; 
*/

alter view myv3
as
select * from employees;

#三、删除视图
/*
语法:
drop view 视图名,视图名…;
*/

drop view myv1,myv2;

#四、查看视图(结构)
/*
语法:
desc myv3;

show create view myv3;
*/

#五、视图的更新(面试会考)p31
/*
语法:
drop vie w 视图名,视图名…;

特点:
1、具备以下特点点的视图是不能更新的:
• 包含以下关键字的sql语句:分组函数、distinct、group by 、having、union或者union all
• 常量视图  select 'join' name; 
• Select中包含子查询
• join
• from一个不能更新的视图(套娃的套娃)
• where子句的子查询引用了from子句中的表
*/

../figures/2021-04-17_22.40.17.png