Oracle-29-视图简介&创建视图

一、视图介绍

1.视图实际是一个或多个表上的预定义查询,这些表称为基表。从视图中检索信息与从表中检索信息方法完全相同:只需要简单地在SELECT语句的FROM子句中使用视图即可。通过视图可以对基表进行DML操作。

注意:视图中并不存储数据,它们只会访问基表中的行。

 

如下:




其中视图基于基表1、基表2、基表3三张基表,所以通过SELECT语句对视图操作,就可以实现对三张基表的操作,而且视图中的数据全部是来源于三张基表。

 

2.视图具有以下优点:

(1)限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽创建视图所基于的底层基表。

(2)可以将复杂查询编写为视图。这样就可以对最终用户屏蔽一定的复杂性。

(3)限制某个视图只能访问基表中的部分特定数据。这样可以实现另外一层安全性,并且可以对最终用户屏蔽部分行。

 

3.视图有两种基本类型:

(1)简单视图:包含一个子查询,它只从一个基表中检索数据。

(2)复杂视图:包含一个子查询,它具有以下特点

第一:从多个基本表检索数据

第二:使用group by或distinct子句对行进行分组

第三:包含函数调用

 

4.创建视图语法格式


create [or replace] [force | noforce] view 视图名 [(别名[,别名]…)]

as 子查询 [with{check option | read only} [constraint 约束名]]


上述语法中中括号内的不是必写内容:

1or replace——如果所建的视图已经存在,Oracle会重新创建这个视图并覆盖已存在的视图,如果不写or replace,那么如果要创的视图已存在,则不会创建,所以如果写上or replace,那么不管是否已存在都创建视图;

2force——不管所用的表(as后面的select语句所查询的表)是否存在,Oracle都会创建这个视图;

3noforce——只有当所引用的表(as后面的select语句所查询的表)都存在,Oracle才会创建这个视图;

4)别名——为视图所产生的列定义的别名;

5with check option——所插入或修改的数据行必须满足视图所定义的约束条件;

6with read only——保证在该视图上不能进行任何DML操作。

【注意】子查询中不能包含order by

 

比如:创建一个简单的视图

create or replace noforce view v_emp (“empno”, “ename”, “sal”, “hiredate”, “deptno”) as select empno, ename, sal, hiredate, deptno from emp where deptno = 10

 

1:练习创建视图

解:如下student表:




对其创建视图,注意下图中的命令:




查询该视图:





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值