[MySQL]SQL_실행순서복습&LIMIT_OFFSET 절 사용법 & 관련 LEETCODE 문제

DONGYOON KIM·2024년 5월 3일

SQL

목록 보기
14/14

관련 LEETCODE SQL 문제

https://leetcode.com/problems/department-top-three-salaries/
https://leetcode.com/problems/department-highest-salary/
https://leetcode.com/problems/consecutive-numbers/

Group by와 Order by와 Having 절에서 Alias 사용가능 MySQL의 자체 최적화기능 때문임(본래 실행순서는 Group by,Having이 Select 보다 앞이라 안된다 생각할 수도 있음)

  1. FROM 절

    • 가장 먼저 평가되며, 여기서 언급된 모든 테이블과 조인이 실행됩니다. 이는 관련 데이터 소스에서 데이터를 가져오는 기반 작업입니다.
  2. JOIN

    • FROM 절에 명시된 테이블 간의 조인이 처리됩니다. 이때 조인 조건에 따라 데이터가 결합됩니다.
  3. WHERE 절

    • WHERE 절은 FROM 절과 JOIN 작업의 결과로 얻어진 데이터에 대한 필터링을 수행합니다. 이는 특정 조건에 맞는 데이터만을 선택하는데 사용됩니다.
  4. GROUP BY 절

    • 데이터를 특정 기준에 따라 그룹화합니다. 이 절은 집계 함수(AVG, COUNT, MAX, MIN 등)와 함께 사용될 때 특히 중요하며, 그룹별로 데이터를 요약할 수 있습니다.
  5. HAVING 절

    • GROUP BY 절로 생성된 그룹에 대해 추가적인 필터를 적용합니다. 이는 WHERE 절과 비슷하지만, 집계된 결과에 대한 조건을 설정하는 데 사용됩니다.
  6. SELECT 절

    • 실제로 출력할 컬럼이나 계산할 표현식을 결정합니다. 이 단계에서는 필요한 모든 계산이 수행되고, 최종적으로 선택된 데이터가 결정됩니다.
  7. DISTINCT

    • SELECT 절에서 반환된 결과에서 중복을 제거합니다. DISTINCT는 SELECT 절 바로 다음에 적용되며, 유니크한 레코드만을 결과로 남깁니다.
  8. ORDER BY 절

    • 선택된 결과를 특정 컬럼을 기준으로 정렬합니다. 이 절은 최종 출력 전에 적용되어 사용자가 요구한 순서대로 데이터를 정렬합니다.
  9. LIMIT / OFFSET 절

    • 최종 결과에서 특정 수의 행을 반환하거나, 특정 수의 행을 건너뛰는 데 사용됩니다. 이는 보통 맨 마지막에 처리되며, 출력될 데이터의 양을 제한합니다.

    OFFSET 사용법

    OFFSET 절은 결과 집합에서 몇 개의 행을 건너뛸지 지정합니다. LIMIT 절은 그 후에 반환할 행의 최대 수를 지정합니다. 기본적으로 LIMIT는 반드시 OFFSET 앞에 지정되어야 합니다.

    SELECT column1, column2, ...
    FROM table_name
    ORDER BY column1, column2, ...
    LIMIT number_of_rows OFFSET skip_rows;
    • number_of_rows는 반환할 행의 수를 지정합니다.
    • skip_rows는 건너뛸 행의 수를 지정합니다.

    예를 들어, 100개의 행이 있는 테이블에서 처음 10개의 행을 건너뛰고 다음 10개의 행을 검색하려면 다음과 같이 쿼리를 작성할 수 있습니다:

    SELECT * FROM your_table
    ORDER BY some_column
    LIMIT 10 OFFSET 10;

    이 쿼리는 your_table에서 some_column으로 정렬한 후, 첫 10행을 건너뛰고 다음 10행을 반환합니다.

0개의 댓글