IT 끄적이기/IT 지식

# 번외, [Oracle] SQL 스칼라 서브쿼리, 건수가 많지 않은 테이블과 조인하기 위해 사용

김팡 2020. 8. 4. 20:14

- 스칼라 서브쿼리 (Scalar Subquery) :

하나의 단일값을 나타내기 위해 SELECT 구문을

[SELECT LIST] ,

[WHERE절] ,

[ORDER BY 절] ,

[DML]  등에

사용하는 서브쿼리를 뜻한다.

데이터 건수가 적을 경우  => 스칼라 서브커리  > 조인 방식

데이터 건수가 적으면 조인 보다 유리하며 유효한 수식이 사용될 수 있는 곳이라면 어디든 사용가능

** 반드시 하나의 결과만(단일 Row) 반환해야한다.

건수가 많지 않은 테이블과 조인해서 데이터를 추출하는 경우 불필요한 조인을 줄이기 위해 사용한다.

Case. JOIN
[기존의 JOIN 을 이용한 경우]

SELECT EMPNO, ENAME, EMP.DEPTNO, DNAME
  FROM EMP, DEPT
 WHERE EMP.DEPTNO = DEPT.DEPTNO 
 ;
Case. SubQuery
[스칼라 서브쿼리 를 이용한 경우]

SELECT EMPNO, ENAME, DEPTNO, (SELECT DNAME FROM DEPT WHERE EMP.DEPTNO = DEPT.DEPTNO)
  FROM EMP ;
ORDER BY 절에서도 사용 가능 
SELECT EMPNO, ENAME, DEPTNO
  FROM EMP E
  ORDER BY ( SELECT DNAME FROM DEPT D 
                   WHERE E.DEPTNO = D.DEPTNO );