Oracle视图

 Oracle视图(View)创建使用
视图(View):实际上是一张或者多张表上的预定义查询,这些表称为基表。从视图中查询信息与从表中查询信息的方法完全相同。
优点:
             可以限制用户只能通过视图检索数据。这样就可以对最终用户屏蔽建表时底层的基表。
    可以将复杂的查询保存为视图。可以对最终用户屏蔽一定的复杂性。
    限制某个视图只能访问基表中的部分列或者部分行的特定数据。这样可以实现一定的安全性。
    从多张基表中按一定的业务逻辑抽出用户关心的部分,形成一张虚拟表。
语法结构:
    CREATE [OR REPLACE] [{FORCE|NOFORCE}] VIEW view_name
             AS 
    SELECT查询
             [WITH READ ONLY CONSTRAINT]
语法解析:
OR REPLACE:如果视图已经存在,则替换旧视图。
FORCE:即使基表不存在,也可以创建该视图,但是该视图不能正常使用,当基表创建成功后,视图才能正常使用。
NOFORCE:如果基表不存在,无法创建视图,该项是默认选项。
WITH READ ONLY:默认可以通过视图对基表执行增删改操作,但是有很多在基表上的限制(比如:基表中某列不能为空,但是该列没有出现在视图中,则不能通过视图执行insert操作),

WITH READ ONLY说明视图是只读视图,不能通过该视图进行增删改操作。现实开发中,基本上不通过视图对表中的数据进行增删改操作。

实例应用:

1.创建一个考勤视图

CREATE OR REPLACE VIEW kq_statistics_view AS SELECT

KQ.KECMC,

kq.KAOQZT,

kq.XINGMING,

kq.KECBH,

kq.QISZ,

kq.JIESZ,

kq.QISJS,

kq.KECZT,

kq.JIAOSXM,

kq.JIAOSGH,

kq.JIAOSMC,

kq.XUEQI,

kq.ZHOUHAO,

kq.SHUAKSJ,

kq.QINGJIAZT,

kq.QINGJIALY,

SINFO.XH,

SINFO.XM,

SINFO.YX,

SINFO.ZY,

SINFO.ZYFX,

SINFO.XSLB,

SINFO.XZ,

SINFO.RXNY,

SINFO.YBYSJ,

SINFO.NJ,

SINFO.BJ,

SINFO.XB,

SINFO.CSRQ,

SINFO.JG,

SINFO.TXDZ,

SINFO.SJHM,

SINFO.JTDZ,

SINFO.qq

FROM

ORG_JWKQ_XUESKCB kq,

ORG_XG_ZHGL_JBXX_XSJBXX sinfo

WHERE

KQ.XUEHAO = SINFO.XH

2.调用视图

WITH stu AS (

SELECT

KQ.BJ,

KQ.NJ,

KQ.CSRQ,

kq.qq,

KQ.KECMC,

kq.KAOQZT,

kq.ZHOUHAO,

kq.JIAOSXM,

SUM (KQ.KAOQZT) OVER (ORDER BY ROWNUM) 累计

FROM

kq_statistics_view kq

WHERE

KQ.XUEQI = '2016-2017春季'

AND KQ.JIAOSXM = '包松涛'

) SELECT

S1.NJ 年级,

S1.bj 班级,

s1.zhouhao 周次,

s1.kecmc 课程名,

s1.JIAOSXM 点名教师,

SUM (1) OVER (ORDER BY ROWNUM) 当前考勤总人次,

S1.累计 当前出勤人次,

SUM (1) OVER (ORDER BY ROWNUM) - s1.累计 当前缺勤人次,

TRUNC (

100 * (

1 - (

s1.累计 / SUM (1) OVER (ORDER BY ROWNUM)

)

),

2

) 当前缺勤率

FROM

stu s1

ORDER BY

S1.zhouhao


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值