SQL视图和物化视图

--视图
一段复杂的SQL,取一个别名作为表名,可以直接从这个表名中查询数据,当发生查询时,实际是 执行这段SQL并返回结果。

 视图和表的区别在于: 表是实际存储数据。视图:用到的时候再查询,不存储数据,不占空间。

--使用者必须先赋权,有创建视图的权限。

grant create view to 用户;

 

创建一个视图

例子:

   CREATE VIEW   empvu
   AS SELECT  e.empno,e.ename,d.dname,d.loc from emp e join dept d on e.deptno =d.deptno;

--视图可以像表一样进行正常查询

select * from empvu;

视图应用场景:

1. 降低使用这个的复杂度,不需要了解底层的实际的细节。
2. 重复出现的场景,可以循环使用,降低SQL的复杂度
注:
如果一个SQL里面反复用的代码使用 with as 的查询结果;
如果在多个SQL公用,使用视图。每次使用视图,都会触发对应的SQL查询。

--物化视图

---保存SQL查询的结果,并且可以 通过 手工定时 或者 由提交触发更新的方式,

-让物化视图的数据和 源表保持同步

例子:

create materialized view vi_emp 
refresh force on commit ---当源表的数据变了之后,会自动刷新物化视图的数据结果。 -让物化视图的数据和 源表保持同步。
as 
select d.dname,e.ename,e.job,e.hiredate 
from scott.dept d,scott.emp e where d.deptno=e.deptno;

---物化视图的好处-----预计算/自动就按 ---提前计算好结果

详细的可以看:https://blog.csdn.net/qq_37708564/article/details/79890354

posted @ 2022-05-07 15:23  潜摩羯  阅读(193)  评论(0编辑  收藏  举报