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 相当于临时数据表 ,所以不能对它进行增删改


版权声明:本文为qq_43439125原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。