什么是视图?
视图是基于一个表或多个表或视图的逻辑表,本身不包含数据,通过它可以对表里面的数据进行查询和修改。
视图基于的表称为基表。
视图是存储在数据字典里的一条select语句。
通过Oracle创建视图可以提取数据的逻辑上的集合或组合。
视图的优点:
1、对数据库的访问,因为视图可以有选择性的选取数据库里的一部分。
2、用户通过简单的查询可以从复杂查询中得到结果。
3、维护数据的独立性,试图可从多个表检索数据。
4、对于相同的数据可产生不同的视图。
视图分为简单视图和复杂视图
视图的创建:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view_name
[(
alias[, alias]...)]
AS subquery
[WITH CHECK OPTION [CONSTRAINT constraint]]
[WITH READ ONLY]
其中:
OR REPLACE :若所创建的试图已经存在,ORACLE自动重建该视图;
FORCE :不管基表是否存在ORACLE都会自动创建该视图;
NOFORCE :只有基表都存在ORACLE才会创建该视图:
alias :为视图产生的列定义的别名;
subquery :一条完整的SELECT语句,可以在该语句中定义别名;
WITH CHECK OPTION :
插入或修改的数据行必须满足视图定义的约束;
WITH READ ONLY :
该视图上不能进行任何DML操作。
例如:
复制代码 代码示例:
CREATE OR REPLACE VIEW dept_sum_vw
(name,minsal,maxsal,avgsal)
AS SELECT d.dname,min(e.sal),max(e.sal),avg(e.sal)
FROM emp e,dept d
WHERE e.deptno=d.deptno
GROUP BY d.dname;