서브 쿼리(Sub Query) 
 - 다른 SELECT문에 삽입된 SELECT문이다. 
 - 간단한 명령문으로 강력한 기능을 제공하는 명령문 작성이 가능하다. 
 - 테이블 자체 데이터에 종속된 조건을 사용하여 테이블에서 행을 선택할 때 유용하다. 
 - 일반적으로 서브 쿼리가 먼저 실행되고, 그 결과를 사용하여 메인 쿼리에서 사용한다.
 서브 쿼리의 사용 
 - 괄호로 묶어서 사용한다. 
 - 일반적으로 서브 쿼리에서는 ORDER BY절을 사용하지 않는다. 
 - 단일 행 연산자(=, >, < 등)와 복수 행 연산자(IN, ANY, ALL 등)를 사용한다. 
 서브 쿼리 사용 가능 위치 
 - SELECT 
 - FROM 
 - WHERE 
 - HAVING 
 - ORDER BY 
 - UPDATE문의 SET 
 - INSERT문의 INTO
WHERE절 서브 쿼리
- ex) K02 팀의 평균 키보다 큰 선수들 조회
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
 | 
 SELECT 
    player_name, 
    team_id, 
    height 
FROM player 
WHERE height > (SELECT AVG(height) 
                FROM player 
                WHERE team_id = 'K02'); 
 | 
HAVING절의 서브 쿼리
- ex) K02 팀의 평균 키보다 큰 팀의 팀ID와 평균 키 조회
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
 | 
 SELECT 
    team_id, 
    AVG(height) 
FROM player 
GROUP BY team_id 
HAVING AVG(height) > (SELECT AVG(height) 
                      FROM player 
                      WHERE team_id = 'K02'); 
 | 
 다중 행 서브 쿼리 사용 
 - IN : 목록에 있는 임의의 값과 동일
- ex) '박동우'와 같은 포지션에 있는 선수의 이름과 포지션 조회
| 
 1 
2 
3 
4 
5 
6 
7 
 | 
 SELECT 
    player_name, 
    position 
FROM player  
WHERE position IN (SELECT position 
                   FROM player 
                   WHERE player_name = '박동우'); 
 | 
 - ANY : 반환되는 각각의 값과 개별 비교
- ex)
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
 | 
 SELECT 
    player_name, 
    team_id, 
    position 
FROM player  
WHERE position <> 'FW'  
AND height > ANY (SELECT height 
                  FROM player 
                  WHERE position = 'FW'); 
 | 
 - ALL : 서브 쿼리에 의해 반환되는 모든 값과 비교
- ex)
| 
 1 
2 
3 
4 
5 
6 
7 
8 
9 
 | 
 SELECT 
    player_name, 
    team_id, 
    position 
FROM player  
WHERE position <> 'FW'  
AND height > ALL (SELECT height 
                  FROM player 
                  WHERE position = 'FW'); 
 | 
오늘의 한 줄 : 오라클에 익숙해진다.
출처 : SK 동반성장 아카데미, 비전공자를 위한 SQL 입문, 「서브쿼리」
'공부 > SQL' 카테고리의 다른 글
| [SQL] INSERT ˙ UPDATE ˙ DELETE 구문 사용 (0) | 2019.12.05 | 
|---|---|
| [SQL] 인라인뷰와 스칼라 서브쿼리 (0) | 2019.12.05 | 
| [SQL] 조인 문장 및 집합 연산자 (0) | 2019.12.04 | 
| [SQL] 조인 처리과정 이해 및 기본 조인 문장 (0) | 2019.12.03 | 
| [SQL] 윈도우 함수 (0) | 2019.12.03 |