상세 컨텐츠

본문 제목

[MySQL] 💻 SQL 쿼리의 일반적인 처리 순서

MySQL/MySQL 기본

by 미로910 2024. 6. 10. 14:02

본문

  1. FROM 절
    • 가장 먼저 실행되며, 쿼리에서 참조하는 테이블 또는 뷰를 식별한다. 여러 테이블이 조인되는 경우, 이 절에서 어떻게 테이블들이 결합되는지 정의된다.
  2. ON 절
    • 조인이 수행될 때 사용된다. FROM 절에서 정의된 테이블들이 결합하는 방식을 구체적으로 명시한다. 이 절은 조인 조건을 평가하여 조인할 행을 결정한다.
  3. JOIN
    • 여러 테이블을 조합할 때 사용되며, ON 절 다음에 평가된다. 지정된 조인 조건에 따라 행들이 결합된다.
  4. WHERE 절
    • FROM 절에서 생성된 결과 테이블에 대해 필터링 조건을 적용한다. 이 조건은 개별 행에 대해 평가되며, 조건을 만족하는 행만이 다음 단계로 전달된다.
  5. GROUP BY 절
    • 조건을 만족하는 행들을 그룹화한다. 이 절은 특정 열 또는 열의 조합을 기준으로 데이터를 요약하는 데 사용된다.
  6. HAVING 절
    • GROUP BY 절에 의해 형성된 그룹에 대해 추가적인 필터를 적용한다. 이 절은 GROUP BY 절과 함께 사용되어 그룹화된 결과에 조건을 적용한다.
  7. SELECT 절
    • 최종적으로 출력될 열을 결정한다. 이 절에서는 특정 열이나 식을 지정하여 출력 포맷을 정의한다. 이 단계에서는 열에 대한 모든 계산(예: 집계 함수)이 수행된다.
  8. DISTINCT
    • 중복을 제거하기 위해 사용된다. SELECT 절 다음에 위치하며, 선택된 데이터에서 중복된 값을 제거한다.
  9. ORDER BY 절 (오름차순, 내림차순)
    • 쿼리 결과를 특정 열을 기준으로 정렬한다. 이 절은 쿼리의 마지막 단계에서 실행되어 최종 결과를 정렬된 형태로 반환한다.
  10. LIMIT / OFFSET 절
    • 반환할 결과의 수를 제한하거나, 특정 수의 행을 건너뛰고 결과를 반환한다. 이는 주로 페이지네이션 구현에 유용하다.
SELECT id, name, class, score
FROM tb_student
WHERE score > 80
ORDER BY score DESC
LIMIT 3;
  1. From 절부터 실행
  2. where 절 실행
  3. select 절 실행
  4. order by 절 실행
  5. limit 절 실행

 

1. FROM 절

쿼리는 먼저 tb_student 테이블을 참조하여 데이터를 가져오는 작업부터 시작한다. 이 단계에서 테이블의 모든 데이터가 초기 조회 대상이 된다.

2. WHERE 절

FROM 절에서 가져온 데이터에 대해 WHERE 절이 실행된다. 이 조건은 score > 80을 만족하는 행만을 필터링하여 다음 단계로 전달한다. 즉, 점수가 80점을 초과하는 학생들만이 선택된다.

3. SELECT 절

필터링된 결과에서 SELECT 절이 실행되어, id, name, class, score 필드를 선택한다. 이 단계에서 데이터는 필요한 컬럼 정보만을 포함하게 되며, 불필요한 데이터는 제외된다.

4. ORDER BY 절

SELECT 절에 의해 추출된 데이터는 ORDER BY score DESC 절에 따라 점수가 높은 순서대로 내림차순 정렬된다. 이는 최종 결과를 사용자가 요구한 순서대로 정렬하는 데 사용된다.

5. LIMIT 절

마지막으로, ORDER BY 절에 의해 정렬된 결과 중 상위 10개의 행만을 반환한다. LIMIT 10은 결과 집합에서 처음 10개의 행만을 제한적으로 선택하여 반환하라는 지시이다.

'MySQL > MySQL 기본' 카테고리의 다른 글

[MySQL] 📗 DML, DDL, DCL 이란?  (0) 2024.06.10
[MySQL] MySQL 계정 생성 및 권한  (0) 2024.06.10
[MySQL] Groub By 와 having 절  (0) 2024.06.10
[MySQL] MySQL Function  (1) 2024.06.10
[MySQL] 테이블 복사 및 데이터 추가  (0) 2024.06.05

관련글 더보기