- SQL 쿼리는 작성 순서와 실행 순서가 다르다. 아래는 쿼리가 실제로 처리되는 논리적 실행 순서이다.
- FROM 절
- 쿼리의 첫 단계로, 데이터를 가져올 테이블(또는 뷰)을 지정한다.
- 여러 테이블을 사용할 경우, 조인(JOIN)을 통해 결합 방식을 정의하고 이 단계에서 모든 행과 열을 포함하는 가상 테이블이 생성된다.
- ON 절
- 조인(JOIN)이 사용될 때, 테이블 간 결합 조건을 정의한다.
- 예를 들어, 두 테이블의 특정 열 값이 일치해야 결합되도록 조건을 설정하면 이 절은 조인된 행을 결정한다.
- JOIN
- FROM 절에서 지정된 테이블들을 ON 절의 조건에 따라 결합한다.
- INNER JOIN, LEFT JOIN 등 조인 유형에 따라 결과 행이 달라지고 결과는 결합된 데이터를 포함하는 새로운 가상 테이블이다.
- WHERE 절
- FROM과 JOIN으로 생성된 가상 테이블에서 조건에 맞는 행만 필터링한다.
- 각 행에 대해 조건(예: price > 20000)을 평가하여 참인 행만 다음 단계로 넘어간다.
- GROUP BY 절
- 필터링된 행을 특정 열(또는 열 조합)을 기준으로 그룹화한다.
- 주로 SUM, COUNT 같은 집계 함수와 함께 사용되어 각 그룹의 요약 정보를 생성한다.
- HAVING 절
- GROUP BY로 생성된 그룹에 조건을 적용한다.
- WHERE이 개별 행을 필터링한다면, HAVING은 그룹 단위로 필터링한다.(예: SUM(sales) > 1000).
- SELECT 절
- 최종 출력할 열, 계산된 값, 또는 집계 함수를 지정한다.
- 이 단계에서 열 이름, 별칭, 수식 등이 처리되어 결과의 구조가 결정된다.
- DISTINCT
- SELECT 결과에서 중복된 행을 제거한다.
- 선택된 열 기준으로 고유한 행만 반환하며, 이 단계는 선택적으로 사용된다.
- ORDER BY 절
- 최종 결과를 특정 열을 기준으로 정렬한다.
- 오름차순(ASC) 또는 내림차순(DESC)으로 설정할 수 있으며, 출력 순서를 결정한다.
- LIMIT / OFFSET 절
- 반환할 행의 수를 제한(LIMIT)하거나, 지정된 수의 행을 건너뛰고(OFFSET) 결과를 반환한다.
- 페이지네이션이나 특정 결과만 필요할 때 유용하다.
- FROM 절
'MySQL' 카테고리의 다른 글
MySQL - GROUP BY 와 HAVING 절 (1) | 2025.05.16 |
---|---|
MySQL - ANSI SQL 표준과 주요 함수 (0) | 2025.05.16 |
MySQL - 테이블 복사 및 데이터 추가 (0) | 2025.05.15 |
MySQL - 트랜잭션과 COMMIT, ROLLBACK (0) | 2025.05.15 |
MySQL - 별칭, 변수 선언, IF문 알아보기 (0) | 2025.05.15 |