首页  > 世界杯女主持人 > Oracle 视图的创建、使用、删除

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

世界杯女主持人 2025-08-26 19:54:26 1718

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

Oracle 视图

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

前言

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

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

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

一、创建视图

视图的命名:通常结尾带_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;

步骤二:查看视图

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;


友情链接:
Copyright © 2015 冲击世界杯_2002韩日世界杯 - 0534pos.com All Rights Reserved.