MySQL

(DB) SQL 쿼리의 일반적인 처리 순서 - 23

mynote6676 2025. 5. 16. 20:28

SQL 쿼리 실행 순서 

 

SQL  쿼리는 작성 순서와 실행 순서가 다릅니다. 아래는 쿼리가 실제로 처리되는 논리적 실행 순서입니다. 각 절의 

역활과 처리 방식을 자세히 설명합니다.

1. FROM 절

-쿼리의 첫 단계로, 데이터를 가져올 테이블 ( 또는 뷰)을 지정합니다. 여러 테이블을 사용할 경우 , 조인(JOIN)을

통해 결합 방식을 정의합니다. 이 단계에서 모든 행과 열을 포함하는 가상 테이블이 생성됩니다.

 

2. ON 절

-조인(JOIN)이 사용될 때, 테이블 간의 결합 조건을 정의합니다. 예를 들어 , 두 데이블의 특정 열 값이 일치해야 결합되도록 조건을 설정합니다. 이 절은 조인된 행을 결정합니다.

 

3. JOIN

- from  절에서 지정된 테이블들을  ON 절의 조건에 따라 결합합니다.  INNER JOIN, LEFT JOIN등 조인 유형에 따라 

결과 행이 달라집니다. 결과는 결합된 데이터를 포함하는 새로운 가상 테이블 입니다 .

 

4. WHERE 절

-FROM 과 JOIN으로 생성된 가상 테이블에서 맞는 행만 필터링합니다 .

각 행에 대해 조건(예 : price > 20000) 을 평가하여 참인 행만 다음 단계로 넘어갑니다.

 

5. GROUP BY 절

-필처링된 행을 특정 열(또는 열 조합)을 기준으로 그룹화합니다. 주로 SUM, COUNT 같은 집계 함수와 함께 사용되어 

각 그룹의 요약 정보를 생성합니다.

 

6. HAVING 절

GROUP BY로 생성된그룹에 조건을 적용합니다. WHERE가 개별 행을 필터링한다면, HAVING은 그룹 단위로 필터링합니다.(예 : SUM(sales) > 1000 ).

 

7. SELECT 절

최종 출력할 열, 계산된 값, 또는 집계 함수를 지정합니다. 이 단계에서 열 이름, 별칭 , 수식 등이 처리되어 결과의

구조가 결정됩니다.

 

8. DISTINCT

- SELECT 결과에서 중복된 행을 제거합니다 선택된 열 기준으로 고유한 행만 반환하며, 이단계는 선택적으로 사용

됩니다.

 

9. ORDER BY 절

최종 결과를 특정 열을 기준으로 정렬합니다 . 오름차순 (ASC) 또느 내림차순(DESC)으로 설정할 수 있으며

출력 순서를 결정합니다.

 

10. LIMIT / OFFSET 절

반환할 행의 수를 제한(LIMIT)하거나 , 지정된 수의 행을 건너뛰고(OFFSET) 결과를 반환합니다.

페이지네이션이나 특정 결고만 필요할 때 유용합니다.