oracle固态视图,Oracle之视图

在Oracle中每一次查询与关联都是生成了一个新的表,这个表在一次查询之后没有办法保存下来,我们引入了视图的概念,通过视图把多张单纯表动态的组合到一张表中来达到上述效果,动态的组合是指原表或者视图一个改变的时候另一个表也随之改变。

视图介绍

视图概念:视图是一张虚拟逻辑表,把多张单独的表动态组合成一张表并存储到数据库中

视图优点:

简化用户处理数据方式,可以使用简单的查询得到复杂插叙你的结果

着重于特定数据,避免一些敏感数据或者无用的数据查询出来

提供简单有效的安全机制,定制不同用户对数据的访问权限

可以将视图的数据导入到其他程序

视图分类:视图分为简单视图和复杂视图

简单视图只能从单表获取数据,复杂视图从多表获取数据

简单视图不包含函数和数据组,复杂视图包含

简单函数可以实现DML操作,复杂视图不可以

如果简单视图创建使用with read only,该视图不能进行DML操作

创建视图

注:如果在scoot中想要拥有创建视图的权限,需要赋予权限,即使用系统用户执行grant create view to scott;语句(注意赋予语句后需要commit)。

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

[(alias[, alias]...)]

AS subquery

[WITH CHECK OPTION [CONSTRAINT constraint]]

[WITH READ ONLY]

OR REPLACE    若所创建的视图已经存在,ORACLE自动重建该视图;

FORCE              不管基表是否存在ORACLE都会自动创建该视图;

NOFORCE         只有基表都存在ORACLE才会创建该视图:

alias                    为视图产生的列定义的别名;

subquery            一条完整的SELECT语句,可以在该语句中定义别名;

WITH CHECK  OPTION  插入或修改的数据行必须满足视图定义的约束;

WITH READ ONLY          该视图上不能进行任何DML操作。create view empv30(empno,ename,sal) as select empno,ename,sal from emp where deptno=30;

创建一个empv30里面写empno,ename,sal

create view emp1 (rn,ename,job,sal) as (select rownum rn,a.* from (select ename,job,sal from emp order by sal) a);

将emp表排序结果存到视图 emp1中,随后使用select * from emp1 where rn>4 and rn<11;获取5-10行

e70f0767cc09?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

查询视图

创建的视图的查询方法和正常的表的查询方法相同即直接使用select语句。select * from empv30;

修改视图

修改视图主要是通过Oracle创建视图时候的一个属性即or replace来重新创建同名视图来达到修改视图的效果。

删除视图

删除视图的方法和正常删除表的效果相同,通过drop来删除表。即 drop view view_name;。drop view empv30;

e70f0767cc09?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值