레이블이 #inlineview인 게시물을 표시합니다. 모든 게시물 표시
레이블이 #inlineview인 게시물을 표시합니다. 모든 게시물 표시

2021년 11월 19일 금요일

오라클 인라인 뷰(Oracle Inline View)

 

오라클 인라인 뷰(Oracle Inline View)


인라인 뷰inline view는 실제 뷰가 아니라 SELECT의 FROM절에 있는 서브 쿼리sub query로 FROM 절에서 테이블 처럼 사용될 데이터를 정의할 때 사용 합니다. FROM절의 테이블을 대체 할 수 있다고 해서 파생 테이블이라고도 부릅니다.


서브 쿼리는 FROM절에서도 사용 가능 한데 이를 뷰(View)인데 CREATE VIEW 명령어로 만들지 않고 SQL문의 해당 라인에 직접 기술한다고 해서 인라인 뷰(InLine View)라고 합니다. SQL문 라인에 직접 기술하니 필요한 시점에만 사용되는 특징이 있습니다.


인라인 뷰를 사용하면 조인 작업을 제거하거나 개별 쿼리를 단일 쿼리로 통합해서 복잡한 쿼리를 단순화 할 수 있습니다. 또한 복잡한 조인 연산시 조인의 타겟 테이블의 데이터 개수를 줄일 수 있습니다.


인라인뷰를 이용한 쿼리 예문을 실습해 보겠습니다.

실습


인라인 뷰를 이용하여 EMP 테이블에서 부서코드별 급여 평균, 합을 구하고 부서코드(deptno)를 조인 키로 DEPT 테이블과 조인하여 부서명을 읽습니다.


인라인뷰를 사용하여 사원(EMP), 부서(DEPT) 테이블에서 부서별로 부서명, 급여의 평균, 급여의 합계를 출력 하세요. (부서명으로 오름차순 정렬, 급여 평균은 소수이하 첫째 자리에서 반올림)


SELECT DNAME, AVG_SAL, SUM_SAL

FROM ( 

              SELECT DEPTNO, ROUND(AVG(SAL)) AVG_SAL, SUM(SAL) SUM_SAL

              FROM    EMP

              GROUP BY DEPTNO

           ) E, DEPT D

WHERE E.DEPTNO = D.DEPTNO

ORDER BY DNAME;


<실행결과>

 

DNAME

AVG_SAL

SUM_SAL

1

ACCOUNTING

1875

3750

2

RESEARCH

2175

10875

3

SALES

1567

9400


ROUND 함수에 별다른 파라미터를 사용하지 않으면 소수이하 첫째 자리에서 반올림 합니다.

인라인 뷰의 모양은 FROM절 아래의 서브 쿼리 형태이며 이 부분이 바깥쪽 메인 쿼리보다 먼저 실행되고 DEPT 테이블과 조인 후 최종 결과가 추출 됩니다.


이번에는 인라인 뷰를 이용하지 않고 동일한 결과를 만들어 보겠습니다.


인라인뷰를 사용하지 않고 사원(EMP), 부서(DEPT) 테이블에서 부서별로 부서명, 급여의 평균, 급여의 합계를 출력 하세요. (부서명으로 오름차순 정렬, 급여 평균은 소수이하 첫째 자리에서 반올림)


SELECT DNAME, ROUND(AVG(SAL)) AVG_SAL, SUM(SAL) SUM_SAL

FROM EMP E, DEPT D

WHERE E.DEPTNO = D.DEPTNO

GROUP BY DNAME

ORDER BY DNAME;


<실행결과>

 

DNAME

AVG_SAL

SUM_SAL

1

ACCOUNTING

1875

3750

2

RESEARCH

2175

10875

3

SALES

1567

9400

 

#inlineview, #인라인뷰, #오라클인라인뷰, #ORACLE, #오라클, #오라클교육, #ORACLE강좌

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...