为什么内联视图与其他视图不同?将它命名为视图的用途是什么

时间:2017-08-16 06:39:49

标签: oracle views inline

我知道内联视图不是数据库对象,就像在子句中编写子查询一样,将命名用作视图的用途是什么。我们可以将其称为子查询。

1 个答案:

答案 0 :(得分:0)

这是Oracle命名约定。来自Inline ViewSubquery

  

内联视图是另一个SELECT语句的FROM子句中的SELECT语句。内联视图通常用于通过删除连接操作并将多个单独的查询压缩到单个查询中来简化复杂查询。

     

此功能在MSSQL社区中通常称为派生表,而Postgres社区只是将其称为子选择(子选择是Oracle命名法中的内联视图+子查询)。 / p>      

子查询(子查询)是另一个SELECT语句的WHERE-或HAVING子句中的SELECT语句。

因此,当您将其与FROM一起使用时,它被称为inline view

SELECT * 
  FROM ( SELECT deptno, count(*) emp_count
         FROM emp
         GROUP BY deptno ) emp,
       dept
 WHERE dept.deptno = emp.deptno;

当您将其与WHERE / HAVING一起使用时,它被称为subquery

SELECT ename, deptno 
  FROM emp 
 WHERE deptno = (SELECT deptno 
                   FROM emp 
                  WHERE ename = 'TAYLOR');