RDBS/MYSQL

[MySQL]반드시 알아야 하는 쿼리의 실행 순서

MoonSta 2023. 5. 6. 16:06
SELECT *
    FROM [테이블]
   WHERE [조건]
  GROUP BY [그룹화할 컬럼]
 HAVING [그룹화 후 조건]
 ORDER BY [정렬 컬럼]

 SQL 쿼리를 통해 필요한 데이터의 조회합니다. 원하는 데이터를 조회하기 위해 쿼리에는 WHERE, GROUP BY, HAVING, ORDER BY 등 다양한 SQL 문법들을 조합하는데 이러한 문법들 사이에서 실행되는 순서가 있습니다. 어떠한 쿼리든 순서에 따라 실행되기 때문에 이러한 처리 순서를 파악하고 있어야만 성능 좋은 쿼리가 만들어집니다. 따라서 이번 포스팅에서는 SQL의 쿼리 실행순서에 대해 알아보도록 하겠습니다. 

 

📢SQL 스크립트 작성 순서

#스크립트 작성 순서
#SELECT - FROM - WHERE - GROUP BY - HAVING - ORDER BY

 

 

📢SQL의 실행 순서

FROM - ON - JOIN - WHERE - GROUP BY - HAVING - SELECT - DISTINCT - ORDER BY

 

  1. FROM : 쿼리 실행 순서 중 가장 먼저 실행되는 부분으로 지정 테이블의 모든 데이터를 가져온다.(JOIN 포함)
  2. WHERE : FROM절로부터 가져온 데이터 중 WHERE절에 조건에 부합하는 데이터를 분류한다.
  3. GROUP BY : WHERE절로 부터 분류된 데이터 중 그룹화할 칼럼을 기준으로 데이터를 축소한다. 
  4. HAVING : 축소된 데이터에 대한 추가적인 조건을 건다. 
  5. SELECT : 작성한 칼럼의 데이터를 조회한다.
  6. DISTINCT : 데이터 조회 중 중복을 제거한다.
  7. ORDER BY : 마지막으로 데이터를 정렬한다.

 

📢SQL의 실행 순서 - 서브 쿼리

#서브쿼리 또한 작성된 위치에 맞는 순서에 따라 실행된다.
#WHERE절 작성 -> WHERE이 실행될 때 실행
SELECT *
   FROM [테이블A]
  WHERE [컬럼] IN (
                  SELECT *
                    FROM [테이블B]
                  )