十、Oracle中的视图

目录

 

10.1. 视图

10.2. 创建视图

10.3. 高级视图

10.4. 查看视图


10.1. 视图

        是一个封装了各种复杂查询的语句,就称为视图。

 


10.2. 创建视图

 CREATE VIEW视图名字(字段) AS 子查询 

 


建立一个只包含 20 部门雇员信息的视图(雇员的编号、姓名、工资)

CREATE VIEW empv20 (empno,ename,sal)

AS

SELECT empno,ename,sal FROM emp WHEREdeptno=20 ; 

 


例如:将之前的一个复杂语句包装成视图显示部门内最低工资比 20 部门最低工资要高的部门的编号及部门内最低工资:

 SELECT deptno,MIN(sal) FROM emp

GROUP BY deptno

 HAVING

MIN(sal)>(SELECT MIN(sal)

FROM emp WHERE deptno=20) ;

 此时就可以将上面的复杂查询语句建立一张视图,之后查询视图即可。

 


 

10.3. 高级视图

 如果要创建一个同名的视图,则必须先将之前的视图删除掉,再进行创建:  

DROP VIEW empv20 ; 

有些时候如果先删除再创建操作会比较麻烦,所以有时候最好的方式:如果视图存在则先自动删除,之后自动创建。

CREATE OR REPLACE VIEW empv20 (deptno,msal)AS (SELECT deptno,MIN(sal) FROM emp GROUP BY deptno HAVING MIN(sal)>(SELECTMIN(sal) FROM emp WHERE deptno=20)) ;  

 


WITH CHECK OPTION保护视图的创建规则

之前是按照部门编号建立的视图,所以不能修改部门编号:

   update empv20 SETename='tom' where empno=7369 ; 可以更新,更新的是名字,成功


WITH READ ONLY(只读,不可修改)

视图最好不要轻易的修改

 CREATE OR REPLACE VIEW empv20(empno,ename,sal,deptno) AS SELECT empno,ename,sal,deptno FROM emp WHEREdeptno=20 WITH READ ONLY;

 现在任意的字段都不可更改,所以现在的视图是只读的。

如果视图的基表有多行查询(比如:group by,distinct)那么该视图也是只读


10.4. 查看视图

Select text from user_views;查看视图的创建语句

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发哥1997

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值