IT 엘도라도 로고
IT 엘도라도
황금

SQL 서브쿼리 (Subquery)

2020-01-07 11:05

SQL 서브쿼리 (Subquery)

1. 서브쿼리 (Subquery)

SQL 쿼리문의 하부 절에 또 다른 SQL 쿼리문을 중첩하여 사용하는 기법을 말한다. 주의할 점은, 서브쿼리는 항상 연산자의 우측에 존재해야 하며 반드시 괄호로 묶어줘야 한다는 것이다. 서브쿼리는 다음과 같이 간단히 분류해볼 수 있다.
대분류
소분류
위치에 따른 분류
SELECT 문에 존재하는 서브쿼리 FROM 절에 존재하는 서브쿼리 WHERE 절에 존재하는 서브쿼리
반환 값에 따른 분류
단일 행 서브쿼리 (단일 행 + 단일 열) 다중 행 서브쿼리 (다중 행 + 단일 열) 다중 열 서브쿼리 (다중 행 + 다중 열)

2. 서브쿼리의 분류

2-1. 단일 행 서브쿼리 (Single Row Subquery)

단일 행 비교 연산자인 =, <, >, <=, >= 등을 사용할 수 있다.
EX) 이름이 SMITH인 직원의 부서에 속한 직원들의 이름/부서번호를 출력

2-2. 다중 행 서브쿼리 (Multiple Row Subquery)

다중 행 비교 연산자인 IN, > ANY, < ALL, < ANY, > ALL, EXIST 등을 사용할 수 있다.
EX) 직업이 PRESIDENT인 직원의 부서들에 속한 직원들의 이름/직업/부서번호를 출력

2-3. 다중 열 서브쿼리 (Multiple Column Subquery)

대응하는 컬럼의 개수가 반드시 같아야 한다.
EX) 부서별로 봉급이 최소인 직원들의 부서번호/이름/봉급을 출력

2-4. 스칼라 서브쿼리 (Scala Subquery)

SELECT 문에서 사용하는 서브쿼리로, 1행만 반환한다.
EX) 직업이 MANAGER인 직원들의 이름/부서이름/직업을 출력

2-5. 상호연관 서브쿼리 (Correlated Subquery)

메인쿼리의 값을 서브쿼리에게 전달하고 서브쿼리를 수행한 뒤, 그 결과를 다시 메인쿼리로 돌려주고 메인쿼리를 수행하는 것이다.
EX) 자신이 속한 부서의 봉급 평균보다 많은 봉급을 받는 직원들의 이름/부서번호/봉급을 부서 번호순으로 출력
 
 
본 글은 아래 링크의 내용을 참고하여 학습한 내용을 나름대로 정리한 글임을 밝힙니다.
말풍선
댓글 0
좋아요 0
    아직 작성된 댓글이 없어요.
사용자