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

视图

时间:2014-05-05 22:38:28      阅读:332      评论:0      收藏:0      [点我收藏+]

标签:int   art   数据   使用   c   name   

视图(View)实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中
查询信息与从表中查询信息的方法完全相同。只需要简单的 SELECT…FROM 即可。
视图具有以下优点:
1. 可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基
表。
2. 可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。
3. 限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定
的安全性。
4. 从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。
语法结构:创建视图
CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name
AS
SELECT查询
[WITH READ ONLY CONSTRAINT]
语法解析:
1. OR REPLACE:如果视图已经存在,则替换旧视图。
2. FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表
创建成功后,视图才能正常使用。
3. NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。
4. WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上
的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视
图执行 insert 操作),WITH READ ONLY 说明视图是只读视图,不能通过该视图进行
增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。
案例 3:基于 EMP 表和 DEPT 表创建视图
代码演示:视图
SQL> CREATE OR REPLACE VIEW EMPDETAIL
2 AS
3 SELECT EMPNO,ENAME,JOB,HIREDATE,EMP.DEPTNO,DNAME
4 FROM EMP JOIN DEPT ON EMP.DEPTNO=DEPT.DEPTNO
5 WITH READ ONLY
6 /
VIEW CREATED
SQL> SELECT * FROM EMPDETAIL; ①
EMPNO ENAME JOB HIREDATE DEPTNO DNAME
7369 SMITH CLERK 17-12 月-80 20 RESEARCH
7499 ALLEN SALESMAN 20-2 月 -81 30 SALES
7521 WARD SALESMAN 22-2 月 -81 30 SALES
7566 JONES MANAGER 02-4 月 -81 20 RESEARCH
7654 MARTIN SALESMAN 28-9 月 -81 30 SALES
7698 BLAKE MANAGER 01-5 月 -81 30 SALES
7782 CLARK MANAGER 09-6 月 -81 10 ACCOUNTING
7788 SCOTT ANALYST 19-4 月 -87 20 RESEARCH
7839 KING PRESIDENT 17-11 月-81 10 ACCOUNTING
7844 TURNER SALESMAN 08-9 月 -81 30 SALES
7876 ADAMS CLERK 23-5 月 -87 20 RESEARCH
7900 JAMES CLERK 03-12 月-81 30 SALES
7902 FORD ANALYST 03-12 月-81 20 RESEARCH
7934 MILLER CLERK 23-1 月 -82 10 ACCOUNTING
14 ROWS SELECTED
代码解析:
① 对视图可以像表一样进行查询。该视图中隐藏了员工的工资。
删除视图可以使用“DROP VIEW 视图名称”,删除视图不会影响基表的数据

视图,布布扣,bubuko.com

视图

标签:int   art   数据   使用   c   name   

原文地址:http://www.cnblogs.com/shaohz2014/p/3704813.html

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