码迷,mamicode.com
首页 > 其他好文 > 详细

1Z0-051-DDL-视图

时间:2016-06-29 13:33:15      阅读:190      评论:0      收藏:0      [点我收藏+]

标签:view   视图   


视  图


视图只不过是select语句。

【注】:视图与表共享相同的名称空间:在可以使用表名的任何位置,使用视图名在语法上也是正确的。

 

1 使用视图的原因

1)用实施安全性的视图

SQL>create view scott.emp_fin as select

Hiredate,job_id,sal,comm,deptnofrom scott.emp;

 

SQL>select dname,sum(sal) from dept natural join emp_fin group by dname;

 

2)用来简化用户SQL的视图

SQL>create view dept_sal as

Selectd.dname,sum(e.sal) from dept d left outer join emp e on d.deptno=e.deptno

Group byd.dname

Order byd.dname;

 

SQL>select * from dept_sal;

 

3)用来防止错误的视图

SQL>create table emp(empno number constraint emp_empno_pk primary key,

Enamevarchar2(20), deptno number,active varchar2(1) default ‘Y‘);

 

SQL>create view current_staff as select * from emp where active=‘Y‘;

 

 

4)使数据易于理解的视图

视图除了可以通过易于理解的形式向用户提供数据之外,也提供用户看到的对象和存储在数据库中的对象之间的抽象层,对于维护相当有价值。视图是使应用程序能够在不同数据库之间移植的重要技术。

5)用来提升性能的视图

SQL>create view dept_emp as

Select/*+USE_HASH (emp dept) */ dname,ename

From deptnatural join emp;

 

 

2、创建、更改和删除视图

  • 简单视图从明细表中提取数据,不适用函数,不进行聚合

  • 复杂视图可以联接明细表、使用函数和进行聚合。

 

1)创建视图的语法:

CREATE   [OR REPLACE] [FORCE |NOFORCE] VIEW

[schema.]viewname[(alias [,alias]…)]

ASsubquery

[WITHCHECK OPTION [CONSTRAINT constraintname]]

[WITHREAD ONLY [CONSTRAINT constraintname]

 

  • OR REPLACE  如果视图存在,则在创建之前删除它

  • FORCE|NOFORCE  即使子查询中没有明显表,FORCE 关键字创建视图,明细表不存在,NOFORCE 则发生错误

  • WITH CHECK     OPTION   如果子查询包括where子句,那么这个选项会防止插入视图中不可见的行,或者防止导致行从视图中消失的更新。

  • WITH READ ONLY 防止任何DML通过视图。

  • CONSTRAINT constraintname

 

2)删除视图

DROP VIEW[schema.]viewname;

 

【案例】

SQL>conn peenboo

SQL>create view emp_anon_v as

Select  hiredate,job,sla,comm,deptno from emp;

SQL>create view dept_anon_v as

Selectdeptno,dname,location_id from dept;

 

将以上两个查询联接聚合成为复杂视图。

SQL>create view dept_sum_v as

Selecte.deptno,count(1) staff,sum(e.sal) salaries,d.dname from emp_anon_v e joindept_anon_v d

One.deptno = d.deptno

Group bye.deptno,d.dname;

 


本文出自 “奋斗不止” 博客,请务必保留此出处http://peenboo.blog.51cto.com/2865551/1793885

1Z0-051-DDL-视图

标签:view   视图   

原文地址:http://peenboo.blog.51cto.com/2865551/1793885

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!