Oracle 视图的创建、使用、删除

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档


前言

提示:这里可以添加本文要记录的大概内容:

视图就是一张或多张表上的预定义查询
视图作用:减少子查询的复杂性;提高运行效率;可以仅提供视图数据,提高数据的安全性。视图以定义的方式存储在数据库中,不占用表空间。
查询视图的时候就是执行视图里封装的逻辑,逻辑里用到的表称为 基表


提示:以下是本篇文章正文内容,下面案例可供参考

一、创建视图

视图的命名:通常结尾带_V
视图创建语法:

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

二、查询、删除视图

查询视图就是查询视图中封装的sql逻辑的内容
查看视图的语法:

select * from 视图名;

删除视图的语法:

DROP VIEW 视图名_V;

三、视图的优点

  1. 可以简化日常操作
  2. 增加数据使用的安全性
  3. 减少网络数据传输
  4. 可以增加只读属性(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 T
WHERE 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;

在这里插入图片描述

  • 6
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Oracle 数据库中,物理视图是一个基于表或者其他物理视图的查询结果集,它以虚拟表的形式存在,并且提供了对数据的访问和操作。创建物理视图是为了方便用户在访问数据时能够一次性获取多个表或者视图的数据。下面是创建 Oracle 物理视图的实例。 首先,我们需要登录到 Oracle 数据库。 接下来,我们使用 CREATE VIEW 语句来创建物理视图。这里我们需要指定视图的名称以及定义视图所基于的查询语句。例如,我们可以创建一个名为 EMPLOYEES_VIEW 的视图,它基于 EMPLOYEES 表和 DEPARTMENTS 表的联接查询: CREATE VIEW EMPLOYEES_VIEW AS SELECT e.EMPLOYEE_ID, e.FIRST_NAME, e.LAST_NAME, d.DEPARTMENT_NAME FROM EMPLOYEES e JOIN DEPARTMENTS d ON e.DEPARTMENT_ID = d.DEPARTMENT_ID; 在创建物理视图时,我们可以选择使用 WITH CHECK OPTION 子句来限制对视图的修改操作。这样,只有满足视图定义条件的数据才能被插入、更新或删除。例如: CREATE VIEW EMPLOYEES_SALARY_VIEW AS SELECT EMPLOYEE_ID, FIRST_NAME, LAST_NAME, SALARY FROM EMPLOYEES WHERE SALARY > 5000 WITH CHECK OPTION; 最后,创建物理视图后,我们就可以使用视图来查询数据。例如,可以使用以下 SELECT 语句从 EMPLOYEES_VIEW 视图中获取数据: SELECT * FROM EMPLOYEES_VIEW; 总结起来,创建 Oracle 物理视图的过程包括登录到数据库使用 CREATE VIEW 语句定义视图的名称和查询语句,可以选择使用 WITH CHECK OPTION 子句限制对视图的修改操作,并且可以使用创建好的视图来查询数据。物理视图创建可以大大简化查询过程,提高数据访问的效率。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值