当前位置:首页 > 芯闻号 > 充电吧
[导读]内联视图在select语句里的内联视图(in-line view),即 SELECT  *  FROM  (scott@ORCL>select * from dept;     DEPTNO

内联视图

在select语句里的内联视图(in-line view),即 SELECT  *  FROM  (


scott@ORCL>select * from dept;

    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON
scott@ORCL>select * from emp;

     EMPNO ENAME      JOB              MGR HIREDATE              SAL       COMM		DEPTNO
---------- ---------- --------- ---------- -------------- ---------- ----------		----------
      7369 SMITH      CLERK           7902 17-12月-80            800			20
      7499 ALLEN      SALESMAN        7698 20-2月 -81           1600        300		30
      7521 WARD       SALESMAN        7698 22-2月 -81           1250        500		30
      7566 JONES      MANAGER         7839 02-4月 -81           2975			20
      7654 MARTIN     SALESMAN        7698 28-9月 -81           1250       1400		30
      7698 BLAKE      MANAGER         7839 01-5月 -81           2850			30
      7782 CLARK      MANAGER         7839 09-6月 -81           2450			10
      7788 SCOTT      ANALYST         7566 19-4月 -87           3000			20
      7839 KING       PRESIDENT            17-11月-81           5000			10
      7844 TURNER     SALESMAN        7698 08-9月 -81           1500          0		30
      7876 ADAMS      CLERK           7788 23-5月 -87           1100			20
      7900 JAMES      CLERK           7698 03-12月-81            950			30
      7902 FORD       ANALYST         7566 03-12月-81           3000			20
      7934 MILLER     CLERK           7782 23-1月 -82           1300			10

已选择14行。


scott@ORCL>select * from
  2  (select deptno,count(*) emp_count from emp group by deptno)  emp,dept
  3  where dept.deptno=emp.deptno;

    DEPTNO  EMP_COUNT     DEPTNO DNAME          LOC
---------- ---------- ---------- -------------- -------------
        10          3         10 ACCOUNTING     NEW YORK
        20          5         20 RESEARCH       DALLAS
        30          6         30 SALES          CHICAGO


其中,( select deptno,count(*) emp_count from emp group by deptno ) 就是内联视图(in-line view)

在DML语句里的内联视图(in-line view),insert into (


insert into (select object_id,object_name,object_type from xxx where object_id<1000) values(1001,'testbyhao','testtype');

普通视图


scott@ORCL>create view emp7934
  2  as
  3  select empno,ename,sal from emp where empno=7934;

视图已创建。



普通视图本质上还是内联视图(in-line view),因为在执行包含普通视图的SQL语句时,普通视图都会最终转化为内联视图(in-line view)

在select语句里的普通视图,例如:


scott@ORCL>select * from emp7934;

     EMPNO ENAME             SAL
---------- ---------- ----------
      7934 MILLER           1300


最终转化为:


scott@ORCL>select * from (select empno,ename,sal from emp where empno=7934);

     EMPNO ENAME             SAL
---------- ---------- ----------
      7934 MILLER           1300


在DML语句里的普通视图,例如:


scott@ORCL>insert into emp7934 values(111,'Test',3500);
已创建 1 行。


最终转化为:


scott@ORCL>insert into ( select empno,ename,sal from emp where empno=7934) values(222,'Test2',4000);
已创建 1 行。
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭