Oracle学习笔记——视图

视图

概念:

视图是基于表或另一个视图的逻辑表,一个视图并不包含真实的数据,它提供了另一个视角查看或改变表中的数据,视图本质上就是一个SELECT语句

功能:

视图可以起到隐藏数据的功能。因为视图可以选择性的显示表中的字段(或行)。
视图可以将复杂的多表连接查询的结果构成一个简单的表结构提供给用户。出于数据库设计的考虑,我们需要把雇员的信息存放到多个表中,但是在显示数据时需要把几张表的数据都显示出来。
在这里插入图片描述

视图的操作

1创建视图

视图名中应包含view,见名知意,否则无法区分视图与表,视图与表不可以重名

语法:
CREATE [OR REPLACE] [FORCE|NOFORCE] VIEW view[(aliaslist)]
	AS subquery

OR REPLACE表示如果视图已经存在则重新创建
FORCE表示创建视图而不管基表是否存在
NOFORCE表示只有基表存在的情况下才创建视图(默认情况)
view表示视图名
aliaslist表示列的别名列表(别名之间用逗号隔开,别名的个数需要和子查询中选择的字段或表达式的个数一致)
subquery表示子查询
视图的核心是子查询,在视图中,子查询可以包含复杂的SELECT语句,但不可以包含ORDER BY子句(如想排序,可以从视图中取数据时进行排序)

实例:

–需求:针对雇员表创建一个视图,隐藏其他数据,只显示雇员编号、姓氏和雇佣日期这三个字段的信息,且他们的别名分别设置为id、name和sdate

CREATE OR REPLACE VIEW emp_hiredate_view(id,name,sdate) 
AS SELECT empno, ename, hiredate FROM emp

–需求:创建一个视图, 名称为EMPVU10, 使其包含EMP表中部门为10的职员的详细信息

create view empvu11 as
     select * from emp where deptno =10;

–需求:假设现在要创建这样一个视图,该视图包括部门名称、部门平均薪水、最低薪水和最高薪水(别名分别是:dname、 minsal maxsal, avgsal ),而这些数据是通过对雇员表emp分组计算得来的。

CREATE VIEW	dept_sum_vu(dname, minsal, maxsal, avgsal)
    AS SELECT	d.dname, MIN(e.sal), MAX(e.sal),AVG(e.sal)
    FROM				emp e, dept d
    WHERE				e.deptno = d.deptno
    GROUP BY 	d.dname;

注意,使用组函数时,需注意不能作为视图的列名,需要显示指定视图的字段名

查询视图

select * from 视图名

删除视图

drop view 视图名

简单视图DML

通过视图向基表中插入数据、删除数据、修改数据。但是不同的操作会有不同的限制,此处了解即可,因为一般不会对视图进行增删改

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值