본문 바로가기
✨ DBMS/etc

[SQL] 서브 쿼리 - (인라인 뷰, 스칼라) - SELECT, FROM

by 환풍 2023. 7. 31.
728x90
반응형

 

인라인 뷰(Inline View)란?

FROM절에 사용되는 서브 쿼리를 인라인 뷰(Inline View)라고 한다.

서브 쿼리가 FROM절에 사용되면 뷰처럼 결과가 동적으로 생성된 테이블로 사용가능하고,

임시적인 뷰이기 때문에 데이터베이스에 저장되지 않는다.

 

ex) 모든 사원의 평균 급여보다 적게 받는 사원들과 같은 부서에서 근무하는 사원의 사번, 이름, 급여, 부서번호

 

여기 EMPLOYEES 테이블이 있다. 이 테이블과 비교할 똑같은 테이블로 평균 급여를 구하고, 부서번호를 구했다.

 

같은 EMPLOYEES에 조건에 해당하는 DEPARTMENT_ID를 조회했다.

그렇다면, 이 테이블은 평균 급여보다 적게받는 사원들의 사원 번호이므로, 이 테이블 그대로 EMPLOYEES 테이블과 조인하면 값이 나올 것이다.

 

이런식으로 조건에 해당하는 테이블을 만들어 주고, INNER JOIN을 통해 인라인 뷰 형식으로 서브쿼리를 짤 수 있다.

 


스칼라 서브 쿼리(Scalar Subquery)란?

SELECT절에 사용되는 서브 쿼리를 스칼라 서브쿼리라고 한다.
반드시 한 개의 행만 반환한다.

 

ex) 직급 아이디가 SA_REP인 사원의 사번, 이름, 직급 아이디, 부서이름

먼저, EMPLOYEES 테이블에서 직급 아이디가 SA_REP인 것을 조건으로 사번, 이름, 직급 아이디를 조회한다.

다음으로 부서이름을 찾아야하는데,

DEPARTMENTS 테이블 부서이름이 있다. 테이블이 서로 다르므로 조인을 해주면서 합쳐줘야한다.

 

이런식으로 SELECT 절에 서브 쿼리를 사용해서 부서 이름을 추가해서 조회해줄 수 있다.

728x90
반응형

댓글