Sql 视图和与…之间的区别是什么。。。Oracle中的as子句?

Sql 视图和与…之间的区别是什么。。。Oracle中的as子句?,sql,oracle,common-table-expression,sql-view,Sql,Oracle,Common Table Expression,Sql View,我的例子的灵感来自Oracle站点 我注意到的唯一区别是ex1是用一条语句编写的,而ex2被分成两条。 此外,我可以使用WITH来选择整个集合的子集,但我也可以使用VIEW来选择 是不是: 使用“选择”仅工作一次和两次 视图是一个别名,因此每次提到它时都会重复选择 谢谢视图和with子句肯定不是一回事 with子句生成一个内联表(也称为派生表),该表仅存在于它执行的查询中 另一方面,视图是合法的数据库对象,从某种意义上说,它模拟了表。视图是由sql查询定义的,因此它是一个虚拟表,可以像查询任何

我的例子的灵感来自Oracle站点

我注意到的唯一区别是ex1是用一条语句编写的,而ex2被分成两条。 此外,我可以使用WITH来选择整个集合的子集,但我也可以使用VIEW来选择

是不是:

使用“选择”仅工作一次和两次 视图是一个别名,因此每次提到它时都会重复选择 谢谢

视图和with子句肯定不是一回事

with子句生成一个内联表(也称为派生表),该表仅存在于它执行的查询中

另一方面,视图是合法的数据库对象,从某种意义上说,它模拟了表。视图是由sql查询定义的,因此它是一个虚拟表,可以像查询任何其他数据库表一样进行查询。在某些情况下,您甚至可以运行DML操作或视图更新、删除、插入,这些操作或视图应用于基础表

如果您反复需要相同的with子句,那么视图有助于缩短查询

视图和with子句肯定不是一回事

with子句生成一个内联表(也称为派生表),该表仅存在于它执行的查询中

另一方面,视图是合法的数据库对象,从某种意义上说,它模拟了表。视图是由sql查询定义的,因此它是一个虚拟表,可以像查询任何其他数据库表一样进行查询。在某些情况下,您甚至可以运行DML操作或视图更新、删除、插入,这些操作或视图应用于基础表


如果您反复需要相同的with子句,那么视图有助于缩短查询

如果我的数据库管理员出于各种正当理由拒绝我的写权限,该怎么办?哪一个更可取?如果我的DB管理员出于各种合法原因拒绝我的写权限,该怎么办?哪一个更好?
-- ex1
with SAMP_V1 as (
    AS SELECT COMM + BONUS as COL_SUM, COMM - BONUS as COL_DIFF
    FROM SAMP.EMPLOYEE) 
select * from SAMP_V1;

-- ex2
CREATE VIEW SAMP.V1 (COL_SUM, COL_DIFF)
    AS SELECT COMM + BONUS, COMM - BONUS
    FROM SAMP.EMPLOYEE;

select * from SAMP.V1;