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;
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。