GA 및 data/SQL

[SQL] 서브쿼리

오구송이 2024. 11. 26. 16:27

반응형

정의

  • 메인쿼리 안에 쿼리가 하나 더 있는 형태(SELECT문 안에 SELECT문이 또 있는 형태)
  • 메인쿼리가 실행되기 전에 먼저 실행되고, 그 결과를 메인 쿼리에서 사용함
    (쉽게 설명하면 '4*(1+3)'의 식에서 1+3을 먼저 계산하고 계산한 값을 4로 곱하는 것과 같음)
  • 서브쿼리는 칼럼명, WHERE 등 다양하게 사용 가능

형태 예시

  • SELECT 칼럼명, (SELECT 칼럼명 FROM 테이블명) FROM 테이블명 ;

예시

더보기

[쿼리문]

SELECT * FROM 학생 WHERE 점수 = (SELECT MAX(점수) FROM 학생);

  •  작동과정
    1. 서브쿼리 실행
      • 작동하는 쿼리문: SELECT MAX(점수) FROM 학생
      • 결과: 90점 반환
    2. 메인쿼리 실행
      • 작동하는 쿼리문: SELECT * FROM 학생 WHERE 점수 = 90;
      • 결과: 영희 반환

서브쿼리 종류

  • 비상관 서브쿼리
    • 의미: 메인 쿼리와 서브쿼리가 연관이 없음
    • 예시: SELECT 칼럼명, (SELECT 칼럼명 FROM 테이블A) FROM 테이블B ;
    • 테이블A의 SELECT문과 테이블B의 SELECT문이 연관되지 않음
  • 상관 서브쿼리
    • 의미: 메인 쿼리와 서브쿼리가 연관되어 있음
    • 예시: SELECT 칼럼명, (SELECT 칼럼명 FROM 테이블A WHERE 테이블A.ID = 테이블B.ID) FROM 테이블B ;
    • 서브쿼리 내 WHERE를 보면 메인쿼리의 테이블B와 서브쿼리의 테이블A가 같으면 조회하라는 조건이 있으므로 해당 케이스는 상관 서브쿼리를 의미
728x90
반응형
LIST