oracle视图

  视图与表不同,一个视图不分配任何存储空间,视图不真正地包含数据。由查询定义的视图相应于视图引用表中的数据。

视图是由一个或多个表(或其他视图)中的数据的一种定制的表示,是用一个查询定义,所以可认为是一个存储的查询(stored query)或是一个虚表。

引入视图有下列好处:
 通过限制对表的行预定义集合的存取,为表提供附加的安全性。
 隐藏数据复杂性。
 为用户简化命令。
 为基本表的数据提供另一种观点。
 可将应用隔离基本表定义的修改。
 用于不用视图无法表示的查询。
 可用于保存复杂查询。

创建视图
CREATE VIEW emp_view AS[as后面就跟我们的select查询语句]
SELECT empno, ename, sal, loc
FROM emp, dept
WHERE emp.deptno = dept.deptno AND  dept.deptno = 10

创建复杂视图

CREATE VIEW     dept_sum_vu(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;

创建视图:使用WITH CHECK OPTION选项
CREATE OR REPLACE VIEW empvu20
    AS SELECT    *
    FROM            emp
    WHERE            deptno = 20
    WITH CHECK OPTION CONSTRAINT empvu20_ck;
创建视图:使用WITH READ ONLY选项
CREATE OR REPLACE VIEW empvu10 [更改视图: 使用CREATE OR REPLACE VIEW语句]
  2        (employee_number, employee_name, job_title)
  3  AS SELECT    empno, ename, job
  4  FROM                emp
  5  WHERE                deptno = 10
  6  WITH READ ONLY;



查询视图:

SELECT ename  FROM emp_view  WHERE empno = 9876

以下sql同 上面创建视图和查询视图 功能相同。其实也就是我们查询数据库表的时候,它自动生成的一个视图emp-view

SELECT ename  FROM emp, dept
WHERE emp.deptno = dept.deptno  AND  dept.deptno = 10
AND  emp.empno = 9876


重定义视图

CREATE OR REPLACE VIEW emp_view AS[as后面就跟我们的select查询语句]
SELECT empno, ename, sal, loc
FROM emp, dept
WHERE emp.deptno = dept.deptno;

删除视图

DROP VIEW emp_view;


原文地址:https://www.cnblogs.com/pacoson/p/3521489.html