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

 更新时间:2023年12月20日 11:42:50   作者:ZimMer@柠檬  
这篇文章主要给大家介绍了关于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视图创建使用及删除内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Linux系统下Oracle数据库的安装和启动关闭操作教程

    Linux系统下Oracle数据库的安装和启动关闭操作教程

    这篇文章主要介绍了Linux系统下Oracle数据库的安装和启动关闭操作教程,并针对在sqlplus下所需执行的命令进行讲解,需要的朋友可以参考下
    2015-12-12
  • 浅析Oracle中sys、system和Scott用户下的数据库连接问题

    浅析Oracle中sys、system和Scott用户下的数据库连接问题

    这篇文章主要介绍了关于Oracle中sys、system和Scott用户下的数据库连接问题,本文通过示例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-07-07
  • VMware中linux环境下oracle安装图文教程(一)

    VMware中linux环境下oracle安装图文教程(一)

    刚刚接触ORACLE的人来说,从那里学,如何学,有那些工具可以使用,应该执行什么操作,一定回感到无助。所以在学习使用ORACLE之前,首先来安装一下ORACLE 10g,在来掌握其基本工具。俗话说的好:工欲善其事,必先利其器。作为一个新手,我们还是先在VMware虚拟机里安装吧。
    2014-08-08
  • Oracle提高SQL执行效率的3种方法

    Oracle提高SQL执行效率的3种方法

    Oracle提供了多种方法在执行带有大量执行计划的复杂查询时剖析过程会拖累系统的性能,感兴趣的朋友可以了解下
    2013-09-09
  • Oracle-DBMS_LOB函数和用法说明

    Oracle-DBMS_LOB函数和用法说明

    这段描述主要er descriptionDBMS_LOB函数用于操作BLOB、CLOB、BFILE、NCLOB等数据类型,涵盖打开、读取、写入、追加、截断等操作,并提供比较、删除、复制等功能,适用于数据库大对象管理
    2026-06-06
  • 使用PLSQL查看表属性乱码的解决方法

    使用PLSQL查看表属性乱码的解决方法

    PL/SQL是Oracle数据库的编程语言,用于编写存储过程、触发器、函数等,今天用plsql想查看表的属性,看看各个字段的注释,可是打开一看,居然是乱码的,所以接下来本文给大家介绍了使用PLSQL查看表属性乱码的解决方法,需要的朋友可以参考下
    2024-03-03
  • Oracle9i的全文检索技术开发者网络Oracle

    Oracle9i的全文检索技术开发者网络Oracle

    Oracle9i的全文检索技术开发者网络Oracle...
    2007-03-03
  • Oracle Sqlplus命令登录多种方式案例讲解

    Oracle Sqlplus命令登录多种方式案例讲解

    这篇文章主要介绍了Oracle Sqlplus命令登录多种方式案例讲解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Oracle如何获取系统当前时间等操作实例

    Oracle如何获取系统当前时间等操作实例

    这篇文章主要给大家介绍了关于Oracle如何获取系统当前时间等操作的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Oracle具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-09-09
  • ORACLE正则匹配查询LIKE查询多个值检索数据库对象

    ORACLE正则匹配查询LIKE查询多个值检索数据库对象

    这篇文章主要介绍了ORACLE正则匹配查询,LIKE查询多个值检索数据库对象,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-07-07

最新评论