Oracle之视图view与with as

Oracle之视图view与with as

作者:谢景,撰写时间:2019-3-27

在我们用sql写查询的时候,常常查询语句是复杂多样的。
这时候我们为了代码可读性和其他一些问题,常常需要把需要查询的数据先查询出来。

view 和with as都是先查询数据,再被其他操作调用。
View和with as 的区别就是View创建之后就是一张虚表,with as 相当于临时数据表,
View创建之后不删除一直都还在,with as 执行之后就不存在了。
下面分析一下View的用法:
一、视图View:
创建:

CREATE VIEW  emp_test
 AS SELECT  employee_id, last_name, salary
    FROM    employees
    ;

2、删除视图:

Drop View  emp_test;

3、由于视图是虚表,我们可以对视图进行DML操作,但是必须注意几点

当视图定义中包含以下元素之一时不能使用delete:
组函数
GROUP BY 子句
DISTINCT 关键字
ROWNUM 伪列

当视图定义中包含以下元素之一时不能使用update:
组函数
GROUP BY子句
DISTINCT 关键字
ROWNUM 伪列
列的定义为表达式

当视图定义中包含以下元素之一时不能使insert:
组函数
GROUP BY 子句
DISTINCT 关键字
ROWNUM 伪列
列的定义为表达式
表中非空的列在视图定义中未包括

二、with as
用法:
with 虚名 as (查询语句)
select * from 虚名

eg:

with test as (select * from emp)
select * from test

注意:由于 with as 相当于临时数据表 ,所以不能对它进行增删改

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值