DATABASE

[MySQL] SELECT문 작성 순서와 실행 순서 알아보기

yoonddo 2023. 7. 6. 19:20

SQL 쿼리문을 작성할 때 사용되는 WHERE, GROUP BY, ORDER BY 와 같은 구문을 실행하는데는 순서가 필요하다.
순서에 의해 쿼리가 처리되고 어떻게 쿼리를 작성하느냐에 따라 성능 차이가 발생할 수 있고 쿼리 실행시 최종적으로
는 결과만 확인할 수 있기 때문에 좀 더 정확한 쿼리 작성을 위해 실행 작동 순서를 알아야한다.


문법 작성 순서

SELECTFROM( JOIN ON )WHEREGROUP BY( HAVING )ORDER BY( LIMIT )

1. SELECT columnName
2. FROM tableName
3. JOIN ON
4. WHERE
5. GROUP BY
6. HAVING
7. ORDER BY
8. LIMIT
 


실행 작동 순서

FROM( ON JOIN )WHEREGROUP BY( HAVING )SELECTORDER BY( LIMIT )

1. FROM - 조회 테이블 확인
문법 작성 순서대로 SELECT 부터 처리할 것이라고 예상할 수 있지만 첫 번째 실행 순서는 FROM절이다.
FROM 절에서는 테이블의 모든 데이터를 가져온다.
 
2. ON JOIN - 다른 테이블과의 결합
다른 테이블과의 결합 조건 ON확인 후 테이블을 결합(JOIN) 한다.
 
3. WHERE - 데이터 추출 조건 확인
FROM절에서 읽어온 데이터 중 조건에 일치하는 데이터만 가져온다.
 
4. GROUP BY - 컬럼 그룹화
WHERE 조건에서 읽어온 데이터를 선택한 컬럼으로 그룹화해 단일 값으로 축소한다.
 
5. HAVING - 그룹화 조건 확인
항상 GROUP BY 뒤에 위치하며 WHERE 조건절과 마찬가지로 조건을 줄 수 있다. WHERE과의 차이점은
WHERE 절은 기본적인 조건절로 우선적으로 모든 필드를 조건에 둘 수 있지만 HAVING 절은 GROUP BY 이후
특정한 필드로 그룹화된 새로운 테이블에 조건을 줄 수 있다.
 
6. SELECT - 데이터 추출
여러 조건들을 처리한 후 남은 데이터에서 어떤 열을 출력할지 선택한다.
 
7. ORDER BY - 데이터 순서 정렬
마지막으로 행의 순서를 정렬한다.
 
8. LIMIT - 정렬까지 완료한 데이터 중 어디까지 결과로 출력할지 선택
LIMIT1 = 첫 번째 데이터만 출력한다.
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
참고 블로그 : https://nohriter.tistory.com/129