美文网首页
Oracle之视图

Oracle之视图

作者: 产品小正 | 来源:发表于2017-11-02 19:08 被阅读0次

在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行

查询视图

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

select * from empv30;

修改视图

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

删除视图

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

drop view empv30;

相关文章

  • Oracle之视图

    在Oracle中每一次查询与关联都是生成了一个新的表,这个表在一次查询之后没有办法保存下来,我们引入了视图的概念,...

  • oracle的那些事

    1.oracle视图操作 创建视图:create view视图名称as查询数据; 删除视图:drop view...

  • Oracle中物化视图的概念

    前言 Oracle中的物化视图也是种视图。Oracle的物化视图是包括一个查询结果的数据库对像,它是远程数据的的本...

  • Oracle操作

    Oracle用户 Oracle系统用户表:sys.user$,dba_users(视图) 创建用户 删除用户 修改...

  • Oracle函数教程(1)书目录

    Oracle函数之abs(x) Oracle函数之sign(x) Oracle函数之ceil(x) Oracle函...

  • V$、GV$、X$、V_$、GV_$之间的关系

    GV$:全局视图,针对多个实例环境。 V$:针对某个实例的视图。 X$:是GV$视图的数据来源,oracle内部表...

  • ORACLE之视图和系统函数

    视图 视图是什么? 视图(View)是从一个或多个表(或视图)导出的表。视图与数据库中的物理表不同,视图是一个虚表...

  • Oracle物化视图的用法与总结

    Oracle物化视图的用法与总结 物化视图(material view)是什么? 物化视图是包括一个查询结果的数据...

  • oracle-视图

    什么是视图【View】? (1)视图是一种虚表(2)视图建立在已有表的基础上, 视图赖以建立的这些表称为基表(3)...

  • oracle新建视图

    视图其实就是一条查询语句,如果我们经常需要多表关联查询一些数据,那么不妨建一个视图,以后操作该视图就相当于操作多表...

网友评论

      本文标题:Oracle之视图

      本文链接:https://www.haomeiwen.com/subject/taqnpxtx.html