26_ SQL 심화 3

김정연·2023년 7월 22일
0

데이터스쿨

목록 보기
27/30
  • 서브쿼리 :
    하나의 SQL 문 안에 포함되어 있는 또 다른 SQL 문을 말한다. 메인쿼리가 서브쿼리를 포함하는 종속적인 관계이다.
    • 서브쿼리는 메인쿼리의 칼럼 사용 가능
    • 메인쿼리는 서브쿼리의 칼럼 사용 불가
    • Subquery 는 괄호로 묶어서 사용
    • 단일행혹은복수행비교연산자와함께사용가능
    • subquery 에서는 order by 를 사용X
  • 서브쿼리 종류 :
    1) 스카라 서브쿼리 (Scalar Subquery) - SELECT 절에 사용
    2) 인라인 뷰 (Inline View) - FROM 절에 사용
    3) 중첩 서브쿼리 (Nested Subquery) - WHERE 절에 사용

📌 Scalar Subquery

SELECT 절에서 사용하는 서브쿼리. 결과는 하나의 Column 이어야 한다.

ex) 서울은평경찰서의 강도 검거 건수와 서울시 경찰서 전체의 평균 강도 검거 건수를 조회


📌 Inline View

FROM 절에 사용하는 서브쿼리. 메인쿼리에서는 인라인 뷰에서 조회한 Column 만 사용가능하다.

ex) 경찰서 별로 가장 많이 발생한 범죄 건수와 범죄 유형을 조회


📌 Nested Subquery

WHERE 절에서 사용하는 서브쿼리
1) Single Row - 하나의 열을 검색하는 서브쿼리
2) Multiple Row - 하나 이상의 열을 검색하는 서브쿼리
3) Multiple Column - 하나 이상의 행을 검색하는 서브쿼리

1️⃣ Single Row Subquery
서브쿼리가 비교연산자( =, >, >=, <, <=, <>, !=)와 사용되는 경우, 서브쿼리의 검색 결과는 한 개의 결과값을 가져야 한다. (두 개 이상인 경우 에러, 괄호가 없으면 에러)

2️⃣ Multiple Row

  • 서브쿼리 결과 중에 포함 될때 - IN
  • 서브쿼리 결과에 값이 있으면 반환 - EXISTS
  • 서브쿼리 결과 중에 최소한 하나라도 만족하면 (비교연산자 사용) - ANY
  • 서브쿼리 결과를 모두 만족하면 (비교 연산자 사용) - ALL

ex) SNL 에 출연한 영화배우를 조회 - IN

ex) 범죄 검거 혹은 발생 건수가 2000건 보다 큰 경찰서 조회 - EXISTS

ex) SNL 에 출연한 적이 있는 연예인 이름 조회 - ANY

ex) 서브쿼리 결과를 모두 만족하면 (비교 연산자 사용) - ALL

3️⃣ Multi Column Subquery

  • 서브쿼리 내에 메인쿼리 컬럼이 같이 사용되는 경우

ex) 강동원과 성별, 소속사가 같은 연예인의 이름, 성별, 소속사를 조회

츨처:제로베이스

0개의 댓글