视图含义:
mysql 15.1 版本出现的新特性,虚拟表,和普通表一样使用。为特定要求组合一部分值,临时的;动态生成的。
1、简化sql语句 2、提高sql的重用性 3、保护基表的数据,提高安全性。
如果是多次使用的一部分信息,可以包装使用。
#case 查询张姓员工的编号和车间号
select id_card ,partment_id
from employees e
inner join job j on j.name = e.name
where e.name like "张%";
如果用上视图 创建视图的方法如下
create view v1
as
select id_card ,partment_id
from employees e
inner join job j on j.name = e.name
#下次想再去使用的话,就直接
select * from v1 where name like “张%”;
一如何创建视图
语法
create view 视图名
as
查询语句;
case 查询邮箱中包含有a字符的员工名,部门名和工种信息,分别在employees,apartment,jobs三个表里面
create view email_info
as
select last_name,department,job_id
from employees e
join departments d on e.department_id = d.department_id
join jobs j on j.job_id = e.job_id
#使用
select * from email_info
WHERE last_name like '%a%';
相当于封装的感觉。
case 2 查看各部门的平均工资级别
#创建视图查看各部门的平均工资
create view avgcom
as
selecet AVG(salary) ag,department_id
from employees
group by department_id;
接下来是使用
select avgcom.ag ,g.grade_level
from avgcom
join job_grade g
on avgcom.ag between g.lower_sal and g.highest_sal;
视图修改
create or replace view 试图名
as 需要修改的内容。
方法二
alter view 视图
as
查询语句;
删除视图
语法:drop view 视图名,试图名 ()可以删除多个
查看视图结构:
desc 试图名;
show create view 试图名。
视图和表的对比
视图 | 表 | |
关键字 | view | table |
是否占用内存 | 占用较小,只保存sql逻辑 | 保存实际的数值 |
使用 | 一般用于查询 | 增删改查 |