oracle 视图总结
关系视图:
- 创建数据表
- 创建关系视图(create or replace view view_name as ………)
- 查看视图的定义(select Text from user_views where view_name=…..)
- 修改/删除视图(create or replace view…..l..; drop view…..)
- 联接视图(视图与视图、视图与表)
- 编译视图(基础表结构改变,对视图产生的影响)
- 使用force选项强制创建视图(表建立之前就建立了视图)
- 利用视图更新数据表
- With check option 选项(如果表的数据更新后,视图结果发生改变,那么这样的更新操作将被禁止);
- 关系视图好处:保证数据安全性;数据整合;数据透明
内嵌视图:
- 关系视图占用数据库资源,内嵌视图不占用,属于”一次性消费”
- 不会利用create view 显示创建,类似于子查询
- 相对于关系视图和临时表,不会进行大量的I/o操作,节省数据库资源
- 与子查询的区别:代替表的位置的查询就是内嵌视图,例如,from和into之后的查询
对象视图:
- 建立对象类型(create type employee is object (属性1 类型,属性2 类型……………..);
- 创建对象视图(create or replace view ov_employees
of employee
with object oid(employee_id) as
select employee_id,last_name||first_name ,province||city,salary
from employees
- 关系视图中view_type和oid_text都为空(可以用来区分对象视图和关系视图)
物化视图(物理化视图):
- 物化视图存储实际数据,会创建一个同名的物理表
- 创建物化视图
Create materialized view mv_monthly_sales
Build immediate/build deffered 立即从基础表中加载数据/延迟加载
Refresh on commit 一旦提交,更新视图
Enable query rewrite 启用查询重写功能
As
Select sale_momth,sum(price*quantity)
From employee_sale_details
Group by sale_month
- 查询重写
Oracle对基础表的查询,转化为对物化视图的查询,以此来提高效率