日期:2014-05-16  浏览次数:20435 次

Oracle 学习笔记 11 -- 视图 (VIEW)

本次必须学习一个全新的概念-- 视图 (VIEW)。在前面的笔记中曾提到过,数据对象包括:表、视图、序列、索引和同义词。前面的笔记都是对表的想剖析,那么本次笔记就对视图的世界进行深入的剖析。

      视图是通过对一个表或者是多个表查询得到的,是从表中抽出的逻辑上相关的数据集合。但是视图是一种虚表,它建立在已经存在表的基础之上,也可以理解为表中导出的“表”。视图定义所依据的表称为基表,有点类似与JAVA中的父类(基类)。

     利用视图可以控制对数据的访问,简化查询,可以避免直接对数据库中真实存在的表进行直接访问,提高数据库的安全性。


创建视图


 创建视图语法格式:    


CREATE [OR ERPLACE ]  VIEW   view_name   

as  子查询 [WITH READ ONLY] | [WITH CHECK OPTION];

子查询可以是复杂的语句,如多个表之间的连接,子查询可以使用单行函数。可以通过给子查询中的列定义别名

来为视图的列定义成想要的名字。


例:创建视图,依赖emp表。

SQL> create view emp_view 
  2  as select empno ,ename ,sal from emp ;
 
View created

在用soctt用户执行上述语句的时候,可能会提示,没有创建视图的权限。可用下面的操作解决。

Oracle - OraClient10g_home1 --> Oracle EnterPrise Manager Console -->连接身份DBA

-->安全性-->用户-->scott --> 双击-->系统 --> 添加create any view 权限-->确定


现在对视图进行查询。

SQL> select * from  emp_view ;
 
EMPNO ENAME            SAL
----- ---------- ---------
 7369 SMITH         800.00
 7499 ALLEN        1600.00
 7521 WARD         1250.00
 7566 JONES        2975.00
 7654 MARTIN       1250.00
 7698 BLAKE        2850.00
 7782 CLARK        2450.00
 7788 SCOTT        3000.00
 7839 KING         5000.00
 7844 TURNER       1500.00
 7876 ADAMS        1100.00
 7900 JAMES         950.00
 7902 FORD         3000.00
 7934 MILLER