SELECT 문의 실행 순서

맛없는콩두유·2023년 3월 1일
0
post-custom-banner

어떤 종류의 SQL 문이든 그 작성 방식에는 정해진 구조와 형식이 있습니다. 특히, 어떤 절이 다른 절보다 먼저 나와야 한다는 '순서의 법칙'은 아주 엄격하게 지켜줘야 하죠. 만약 이 순서를 지키지 않으면 SQL 문을 실행했을 때 에러가 납니다.

우리가 이때까지 배웠던 SELECT 문의 각 절들을 정리해보겠습니다.

각 절들을, 더 앞에 나와야 하는 순서대로 써보겠습니다.

SELECT
FROM
WHERE
GROUP BY
HAVING
ORDER BY
LIMIT

각 절의 용도가 뭔지는 다 기억하셔야 합니다. 그런데 이런 작성 순서만큼이나 중요한 사실이 하나 있습니다.
이 사실은 여러분의 SQL 해석 능력을 한층 업그레이드해줄 사실인데요.

그것은 바로 각 절들이 위에 쓴 순서대로 실행되는 것이 아니라 사실은 아래의 순서대로 해석 및 실행된다는 사실입니다.

FROM
WHERE
GROUP BY
HAVING
SELECT
ORDER BY
LIMIT

어떤 식으로 해석 및 실행되는지를 하나씩 차례대로 살펴보면 다음과 같습니다.

  • FROM: 어느 테이블을 대상으로 할 것인지를 먼저 결정합니다.
  • WHERE: 해당 테이블에서 특정 조건(들)을 만족하는 row들만 선별합니다.
  • GROUP BY: row들을 그루핑 기준대로 그루핑합니다. 하나의 그룹은 하나의 row로 표현됩니다.
  • HAVING: 그루핑 작업 후 생성된 여러 그룹들 중에서, 특정 조건(들)을 만족하는 그룹들만 선별합니다.
  • SELECT: 모든 컬럼 또는 특정 컬럼들을 조회합니다. SELECT 절에서 컬럼 이름에 alias를 붙인 게 있다면, 이 이후 단계(ORDER BY, LIMIT)부터는 해당 alias를 사용할 수 있습니다.
  • ORDER BY: 각 row를 특정 기준에 따라서 정렬합니다.
  • LIMIT: 이전 단계까지 조회된 row들 중 일부 row들만을 추립니다.
    어떤가요? SQL 문의 실행 흐름이 잘 느껴지시나요?

이 실행 흐름을 보면, 이전 영상에서 제가 강조했던 WHERE 절과 HAVING 절의 차이도 잘 이해되실 겁니다.

앞으로 여러분이 이 실행 순서만 잘 기억한다면 아무리 어려운 SQL 문을 봐도 어떤 결과가 리턴될지 쉽게 파악할 수 있을 겁니다.

여러분은 실무에서 아마도 길고 복잡한 SQL 문들을 만나게 될 겁니다. 그런데 이 실행 순서를 확실히 숙지하고 있지 않으면, SQL 문이 조금만 복잡해져도 길을 잃게 됩니다.

SQL 문의 실행 순서, 확실하게 암기하세요!

profile
하루하루 기록하기!
post-custom-banner

0개의 댓글