视图

一.     视图的定义

视图(view),也称虚表, 不占用物理空间,这个也是相对概念,因为视图本身的定义语句还是要存储在数据字典里的。视图只有逻辑定义。每次使用的时候, 只是重新执行SQL.

 

二.    视图分类

1.  简单视图   基于单个基表,且不包含函数和数据分组操作 

select ename,job,sal from emp where job='CLERK';

 

create view v1 as select ename,job,sal from emp where job='CLERK';

create or replace view v2 as select * from emp where deptno=10 withread only;  ====>只读视图

 

2.  复杂视图基于多个基表或视图

 

3.  物化视图

 

三.语法

CREATE[OR REPLACE][FORCE][NOFORCE]VIEW view_name

[(column_name)[,….n]]

AS

Select_statement

[WITH CHECK OPTION[CONSTRAINT constraint_name]]

[WITH READ ONLY]

 

REPLACE:  如果创建视图时, 已经存在此视图, 则重新创建此视图, 相当于覆盖

FORCE:  强制创建视图, 无论的视图所依赖的基表否存在或是否有权限创建

NOFORCE:  只有基表存在且具有创建视图权限时, 才可以创建视图

WITH CHECKOPTION  指出在视图上所进行的修改都要符合select_statement 所指定的限制条件

WITH READONLY  只允许查看视图

 

三.基本操作

1.查询视图: 可依赖于多个基表.

SELECT *FROM view_name; /* 类似于查询表数据*/

        

 

2. 插入数据

INSERT  INTO  view_name VALUES();

 

3. 修改数据:

UPDATE  view_nameSET …

 

4. 删除数据:

Delete from view_name where …

同样, 当视图依赖多个基表时, 不能使用此语句来删除基表中的数据. 只能删除依赖一个基表的数据.

5. 删除视图:

DROP VIEW view_name;

四.视图操作

在视图定义中没有设定READ ONLY 的前提下, 如果视图包含了下面的内容, 那么不能通过视图删除表中的数据:

* 分组函数, 如SUM,AVG,MIN,MAX 等

*   GROUP BY 子句

* 包含了表达式

*  ROWNUM 伪列

 

selectowner,view_name from dba_views where owner='用户名'; è查看这个用户的视图

descdba_views 查看视图的结构

 

 

阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/teng_ling/article/details/51540924
文章标签: oracle 视图
个人分类: oracle
上一篇oracle基本使用和select基础
下一篇排序算法--浅谈
想对作者说点什么? 我来说一句

视图.ppt

2011年11月01日 234KB 下载

动态视图分割动态视图分割

2010年01月30日 1.07MB 下载

oracle视图详解

2013年12月20日 53KB 下载

DemoCtrlVCCenter

2014年06月04日 190KB 下载

对话框视图对话框视图

2010年08月18日 1.8MB 下载

oracle作业视图和同义词

2017年12月05日 28KB 下载

Oracle视图操作

2010年12月07日 147KB 下载

用存储过程创建视图

2017年11月06日 2KB 下载

项目流程视图工作流程

2010年07月19日 105KB 下载

没有更多推荐了,返回首页

关闭
关闭