[SQL]Basic_2회차(임동찬튜터)

오정연(DATA_2기)·2024년 9월 1일

SQL

목록 보기
12/12

[수업 목표]

  • SQL 서브쿼리(Subquery) 개념과 구조, 활용 사례에 대해 소개합니다.
  • 서브쿼리(Subquery)의 종류와 자주 사용하는 구조에 대해 알아봅니다.
  • 서브쿼리(Subquery)와 조인(Join)의 차이점에 대해 배우고, 서브쿼리가 더 유용한 케이스에 대해 알아봅니다.

서브쿼리(Subquery)를 알아보아요

  • 서브쿼리란?

    서브쿼리(Subquery)는 SQL 문장에서 메인쿼리(Mainquery) 내부에 포함된 쿼리를 말합니다. 서브쿼리는 내부 쿼리, 중첩 쿼리, 또는 내재된 쿼리라고도 불리며, 메인 쿼리의 일부로 실행되어 메인 쿼리의 결과를 제한하거나 계산하는 데 사용됩니다.
  • 서브쿼리의 구조

    서브쿼리는 일반적으로 소괄호 ()로 감싸며, 다양한 위치에서 사용할 수 있습니다.

  • 서브쿼리의 종류

    • 단일 행 서브쿼리
      • 하나의 행만 반환하는 서브쿼리
    • 다중 행 서브쿼리
      • 여러 행을 반환하는 서브쿼리
    • 상관 서브쿼리
      • 외부 쿼리의 각 행에 대해 한 번씩 실행되는 서브쿼리

서브쿼리 예제와 실습


서브쿼리와 함께 자주 쓰이는 함수들

  • IN & EXISTS

    • IN: 서브쿼리가 반환한 값 중 하나라도 일치하는 경우
  • EXISTS : 서브쿼리가 하나 이상의 행을 반환하는 경우

exist > 존재하다라는 의미인데 존재하면 다 가져오기 때문에 유용함.
예를 들어서 in으로 넣어서 사용하려고하는데 100이상인 값을 가져와라! 했는데 만약 100이상인 값들이 존재하지않는다면? null 상태일수도 있기때문에 에러없이 가져올수있음 exist를 사용하면.
다면 exist를 사용시에는 예시대로 사용해야함.
select 뒤에는 무조건 1 을 붙여야하며,
where 조건에서 조인처럼 사용해줘야하고 and로 조건을 입혀준다.

즉 exist 조건이 존재해야지만 가져온다. in을 사용했을때는 에러문이 나와서 존재하는지 안하는지 알수가 없으나 exist는 에러가 아니라 존재해야지만 값을 불러오기때문에 더 간편하다.

  • ANY & ALL

    • ANY: 서브쿼리가 반환한 값 중 하나라도 조건을 만족하는 경우



  • ALL : 서브쿼리가 반환한 모든 값이 조건을 만족하는 경우


고급 서브쿼리

  • 서브쿼리(Subquery)와 조인(Join) 비교하기

    • 서브쿼리(Subquery) vs 조인(Join)
      서브쿼리와 조인은 데이터베이스 질의에서 데이터를 결합하는 두 가지 주요 방법입니다. 서브쿼리는 한 쿼리 내에서 다른 쿼리를 중첩시켜 사용하고, 조인은 여러 테이블을 결합하여 하나의 결과 집합을 만듭니다.
    • 어떤 경우에 서브쿼리를 사용하는 것이 더 좋은가요?
      서브쿼리는 데이터베이스 구조가 복잡하고, 특정 조건에 따라 데이터를 필터링하거나 집계할 때 유용합니다.

profile
데이터 새내기

0개의 댓글