본문 바로가기
Database

[SQL] SELECT 쿼리 실행 순서(MySQL,MariaDB,Oracle,MS SQL,PostgreSQL,SQLite)

by DevPark 2023. 4. 6.

일반적인 쿼리 실행 순서

 

쿼리 실행 순서는 일반적으로 다음과 같습니다.

 

  1. FROM: 쿼리의 대상이 되는 테이블을 선택합니다.
  2. WHERE: 특정 조건을 만족하는 행만 선택합니다.
  3. GROUP BY: 특정 열을 기준으로 그룹을 만듭니다.
  4. HAVING: 그룹에 대한 조건을 지정합니다.
  5. SELECT: 조회할 열을 선택합니다.
  6. DISTINCT: 중복된 결과를 제거합니다.
  7. ORDER BY: 결과를 정렬합니다.
  8. LIMIT/OFFSET: 결과를 제한하거나 오프셋을 지정합니다.

 

하지만 이러한 실행 순서는 모든 데이터베이스 시스템에서 동일하지는 않습니다. 일부 시스템에서는 WHERE 절의 조건을 먼저 처리하고, GROUP BY 절 이전에 SELECT 절을 실행하는 등 다른 실행 순서를 따릅니다. 따라서 사용하는 데이터베이스 시스템에 따라 실행 순서가 달라질 수 있습니다.


데이터베이스 시스템 별 쿼리 실행 순서

각 데이터베이스 시스템에서의 쿼리 실행 순서는 다음과 같습니다.

 

 

MySQL/MariaDB

  1. FROM
  2. JOIN
  3. WHERE
  4. GROUP BY
  5. WITH ROLLUP
  6. HAVING
  7. SELECT
  8. DISTINCT
  9. ORDER BY
  10. LIMIT/OFFSET

Oracle

  1. FROM
  2. JOIN
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. SELECT
  7. DISTINCT
  8. ORDER BY
  9. FETCH FIRST/NEXT

Microsoft SQL Server

  1. FROM
  2. JOIN
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. SELECT
  7. DISTINCT
  8. ORDER BY
  9. OFFSET/FETCH

PostgreSQL

  1. FROM
  2. JOIN
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. SELECT
  7. DISTINCT
  8. ORDER BY
  9. LIMIT/OFFSET

SQLite

  1. FROM
  2. JOIN
  3. WHERE
  4. GROUP BY
  5. HAVING
  6. SELECT
  7. DISTINCT
  8. ORDER BY
  9. LIMIT/OFFSET

위의 순서는 일반적인 경우이며, 각 데이터베이스 시스템의 버전과 설정에 따라 다를 수 있습니다. 또한, 각 데이터베이스 시스템에서는 쿼리 실행 순서를 최적화하기 위해 다양한 기술을 사용합니다.

 
반응형

'Database' 카테고리의 다른 글

[SQL] HAVING  (0) 2023.04.06
[SQL] GROUP BY  (0) 2023.04.06
[SQL] 그룹함수(집계함수)  (0) 2023.04.06
[SQL] ORDER BY 정렬  (0) 2023.04.06
[SQL] OUTER JOIN (RIGHT, LEFT, FULL)  (0) 2023.04.06

댓글