Oracle视图的创建和使用

视图其实是一张虚表,是基于已存在的基表创建,可以将视图理解为存储起来的 SELECT 语句。

视图的作用:
    1、控制数据的访问
    2、简化查询
    3、避免访问重复数据

赋权

首先要有创建视图的权限,没有权限的可以切换到sys或者system账号,赋权以后再创建,我将sql语句放在下面:

--切换登陆用户
conn system/密码;

--赋权,我这里将创建视图的权限赋给scott账户
grant create view to scott

 创建视图

--v_name:视图名

create[or replace] [FORCE|NOFORCE] view v_name
as
select语句
[with read only]只读

其中的or replace是如果有视图已经存在,则替换视图。

Force和noforce是决定是否强制创建视图,force是在基表不存在时也可以创建视图的标志,noforce指如果基表不存在,则不能创建视图。Noforce是默认选项。

在存储过程和函数中is和as没什么区别,但是创建视图是用as,as后面就是接select语句

如果创建视图的时候后面加了with read only,那么就无法对这个视图进行DML操作,也就是增删改操作

使用

简单视图可以进行增删改查操作,会影响到基表。

复杂视图的操作规则如下:

一、当视图定义中包含以下元素之一时不能使用delete:
    1、组函数(聚合函数)
    2、GROUP BY 子句
    3、DISTINCT 关键字
    4、ROWNUM 伪列

二、当视图定义中包含以下元素之一时不能使用update:
    1、组函数(聚合函数)
    2、GROUP BY 子句
    3、DISTINCT 关键字
    4、ROWNUM 伪列
    5、列的定义为表达式

三、当视图定义中包含以下元素之一时不能使insert:
    1、组函数(聚合函数)
    2、GROUP BY 子句
    3、DISTINCT 关键字
    4、ROWNUM 伪列
    5、列的定义为表达式
    6、表中非空的列在视图定义中未包括


另外还有一种视图:物化视图。有兴趣的小伙伴可以自行百度学习。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值