一. 回顾
前面学习了Day12——慢查询日志,今天学习视图
二. 视图
总结:视图的作用就是封装解耦
练习:
注意代码中的注释
#视图是将一段查询sql封装为y一个虚拟的表
#虚拟表只保存了sql逻辑,bu不会保存ren任何查询结果
#视图的作用:
#1.封装复杂的sql,提高复用性。比如做报表,将各种字段封装成视图(存在mysql里面),在Java中查询视图即可
#2.逻辑放在数据库里面,更新不需要发布程序,面对频繁的需求变更更加灵活
#总结:作用就是封装解耦
#适用场景:
#1.很多地方可以公用的一组查询结果
#2.报表
#建视图例子:mysql规定from后面不能有子查询,但oracle可以
create view view_bird
as
SELECT b.deptName, b.id,
if(avg(a.age)>50, '老鸟', '菜鸟') '老鸟or菜鸟'
from t_emp a inner join t_dept b
on a.deptid = b.id
GROUP BY b.deptName, b.id;
SELECT * from view_bird;#Java程序有他就够了,封装可变的逻辑在数据库。
#更新视图语法如下:
create or REPLACE view view_bird
as
SELECT b.deptName, b.id,
if(avg(a.age)>70, '老鸟', '菜鸟') '老鸟or菜鸟'
from t_emp a inner join t_dept b
on a.deptid = b.id
GROUP BY b.deptName, b.id;
SELECT * from view_bird;