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) 결과를 반환합니다.
페이지네이션이나 특정 결고만 필요할 때 유용합니다.
'MySQL' 카테고리의 다른 글
(GB) GROUP BY 와 HAVING 절 - 22 (0) | 2025.05.16 |
---|---|
(DB) 테이블 복사 및 데이터 추가 - 20 (0) | 2025.05.16 |
(DB) 트랜잭션 이란 & (COMMIT,ROLLBACK) -19 (0) | 2025.05.16 |
(DB) MySQL 별칭, 변수 선언, IF 문 - 18 (0) | 2025.05.16 |
(DB)MySQL JOIN - 17 (0) | 2025.05.14 |