欢迎投稿

今日深度:

Oracle视图的创建、使用以及删除操作方法大全,

Oracle视图的创建、使用以及删除操作方法大全,


目录
  • 前言
  • 一、创建视图
  • 二、查询、删除视图
  • 三、视图的优点
    • 例一:简化日常的操作 --将常用的SQL封装到视图中
    • 例二:增加数据的安全性 --屏蔽掉私密数据(如工资,奖金)
    • 例三:视图的修改
    • 例四:视图增加只读属性,防止别人对数据进行修改
    • 例五:视图当表用
    • 例六:视图嵌套使用
    • 例七:with as 结合视图使用
  • 附:如何使用Oracle创建多表视图?
    • 总结 

      前言

      视图就是一张或多张表上的预定义查询

      视图作用:减少子查询的复杂性;提高运行效率;可以仅提供视图数据,提高数据的安全性。视图以定义的方式存储在数据库中,不占用表空间。

      查询视图的时候就是执行视图里封装的逻辑,逻辑里用到的表称为 基表

      一、创建视图

      视图的命名:通常结尾带_V

      视图创建语法:

          create or replace view 视图名称_V
          as
          查询的逻辑 (select);
         -- with read only; 可以增加只读属性
      

      二、查询、删除视图

      查询视图就是查询视图中封装的sql逻辑的内容

      查看视图的语法:

      select * from 视图名;
      

      删除视图的语法:

      DROP VIEW 视图名_V;

      三、视图的优点

      • 可以简化日常操作
      • 增加数据使用的安全性
      • 减少网络数据传输
      • 可以增加只读属性(with read only),保障数据安全

      例一:简化日常的操作 --将常用的SQL封装到视图中

      步骤一:创建查询视图:

      create or replace view aa_v 
      as 
      select f.deptno 部门编号,f.dname 部门名称 ,count(e.empno) 部门人数 ,
      avg(e.sal) 平均工资,max(e.sal) 最大工资,min(e.sal) 最小工资,sum(e.sal) 工资总和
      from dept f
      left join emp e
      on f.deptno=e.deptno
      group by f.deptno,f.dname
      order by f.deptno;
      

      该处使用的url网络请求的数据。

      步骤二:查看视图

      select * from aa_v;

      例二:增加数据的安全性 --屏蔽掉私密数据(如工资,奖金)

      给用户查看视图bb_v权限,不给看emp表权限;

      步骤一:创建查询视图:

      create or replace view bb_v 
      as 
      select empno,ename,job,mgr,deptno
      from emp;
      

      步骤二:查看视图

      select * from bb_v;

      例三:视图的修改

      步骤一:创建查询视图:

      create table emp_111 as select * from emp;
      
      create or replace view cc_v 
      as 
      select empno,ename,job,mgr,deptno
      from emp_111;
      

      步骤二:查看视图

      select * from cc_v;

      步骤三:修改视图

      update cc_v set deptno=50 where empno=7788;
      commit; --提交
      

      步骤四:再次查看视图

      视图数据发生了改变

      select * from cc_v;

      查看原表中的数据,发现原表的数据也发生了改变。

      select * from emp_111;

      例四:视图增加只读属性,防止别人对数据进行修改

      步骤一:创建查询视图:

      create or replace view dd_v 
      as 
      select empno,ename,job,mgr,deptno
      from emp_111
      with read only;  --加上只读属性
      

      步骤二:查看视图

      select * from dd_v;

      步骤三:尝试修改只可读视图

      发现修改视图内容报错误。

      update cc_v set deptno=50 where empno=7788;
      commit; --提交
      

      例五:视图当表用

      步骤一:创建查询视图:

      CREATE OR REPLACE  VIEW EMP_ENAME_V 
      AS 
      SELECT T.EMPNO
            ,T.ENAME
            ,T.DEPTNO
            ---函数返回的结果一定要给别名
            ,TO_CHAR(T.HIREDATE,'YYYY') as rz_year
      FROM EMP T; --基表
      

      步骤二:查看视图

      select * from EMP_ENAME_V; --查询视图就是查询视图中封装的sql逻辑的内容;
      

      步骤三:视图当做表进行过滤查询

      SELECT * FROM EMP_ENAME_V TWHERE T.EMPNO = 7369;

      例六:视图嵌套使用

      步骤一:创建查询视图:

      CREATE OR REPLACE VIEW EMP_DEPT_V 
      AS 
      SELECT T.EMPNO
            ,T.ENAME
            ,T2.DNAME
      FROM EMP_ENAME_V T
      INNER JOIN DEPT T2
              ON T.DEPTNO = T2.DEPTNO;
      

      步骤二:查看视图

      SELECT * FROM EMP_DEPT_V;

      删除视图

      DROP VIEW EMP_DEPT_V;

      例七:with as 结合视图使用

      步骤一:创建查询视图:

      create or replace view hh_v
      as
      with table1 as(select * from emp where deptno=10),
           table2 as(select * from emp where deptno=20),
           table3 as(select* from dept)
           
           select e.*,f.dname,f.loc from table1 e
           inner join table3 f
           on e.deptno = f.deptno;
      

      步骤二:查看视图

      select * from hh_v;

      附:如何使用Oracle创建多表视图?

      vip会员内容

      总结 

      到此这篇关于Oracle视图的创建、使用以及删除操作方法大全的文章就介绍到这了,更多相关Oracle视图创建使用及删除内容请搜索PHP之友以前的文章或继续浏览下面的相关文章希望大家以后多多支持PHP之友!

      您可能感兴趣的文章:
      • oracle 视图权限 oracle 创建视图权限不足
      • Oracle Scott创建视图权限不足解决办法
      • Oracle创建带有参数的视图代码介绍
      • Oracle数据库scott用户创建view视图权限的操作方法
      • oracle中的视图详解

      www.htsjk.Com true http://www.htsjk.com/oracle/47651.html NewsArticle Oracle视图的创建、使用以及删除操作方法大全, 目录 前言 一、创建视图 二、查询、删除视图 三、视图的优点 例一:简化日常的操作 --将常用的SQL封装到视图中 例二:增加数据的安全...
      评论暂时关闭