一.视图
1.概念
视图:存储的查询语句,当调用的时候,产生结果集,视图充当的是虚拟表的角色.mysql5.1版本出现的新特性,是通过表动态生成的数据。
2.视图与表的区别
视图与普通表的对比:
语法 内存占用 应用情形
视图 create view 只是保存sql逻辑 增删改查,一般不能增删改一般只用到查
表 create table 保存了数据 增删改查
3.视图的好处
视图的作用就是缓存数据,可以这么理解,把一条sql的查询结果装在了一个视图里,下次再查的时候,就不用走sql了,直接取这个视图里就可以了,神奇的是可以修改这个视图里的数据,就等于修改了原表数据。
它的优点有很多,什么简单、安全、简化操作、数据独立。。。。。。
4.视图的语法
1>创建视图
create view 视图名
as
查询语句;
2>案例
1.查询姓名中包含a字符的员工名、部门名和工种信息
①创建
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;
②使用
SELECT * FROM myv1 WHERE last_name LIKE ‘%a%’;
2.查询各部门的平均工资级别
①创建视图查看每个部门的平均工资
CREATE VIEW myv2
AS
SELECT AVG(salary) ag,department_id
FROM employees
GROUP BY department_id;
②使用
SELECT myv2.ag,g.grade_level
FROM myv2
JOIN job_grades g
ON myv2.ag BETWEEN g.lowest_sal AND g.highest_sal;
3.查询平均工资最低的部门信息
SELECT * FROM myv2 ORDER BY ag LIMIT 1;
4.查询平均工资最低的部门名和工资
CREATE VIEW myv3
AS
SELECT * FROM myv2 ORDER BY ag LIMIT 1;
SELECT d.*,m.ag
FROM myv3 m
JOIN departments d
ON m.department_id=d.department_id;