DB
[DB] MySQL - SELECT 실행 순서
planting grass
2025. 3. 25. 18:01
728x90
SELECT 실행 순서
SQL은 우리가 코드를 작성하는 순서와 실제로 실행되는 순서가 다르다.
때문에, 문법을 사용할때는 정해진 실행 순서를 지키지 않는다면, 오류가 발생하거나, 실행 결과가 이상하게 나올 수 있다.
엥? 어차피 실행되는 순서가 SQL에 정해져 있다면 작성하는 순서는 상관없는게 아닌가? 하는 생각이 들 수 있다.
하지만, SQL은 프로그래밍 언어보다는 선언형 언어에 가깝기 때문에 작성한 문장의 구문 순서에 따라 문장을 이해하고 실행시킨다.
문법 작성 순서
SELECT
컬럼FROM
테이블WHERE
조건GROUP BY
그룹HAVING
조건ORDER BY
정렬
실행 작동 순서
SELECT
→ 어떤 컬럼을 출력할지 지정FROM
→ 어느 테이블에서 데이터를 가져올지 지정WHERE
→ 각 행(row) 에 대해 조건 필터링GROUP BY
→ 조건을 통과한 행들을 그룹(묶음) 으로 나눔
그룹화된 각 그룹에 대해 집계 함수 사용 가능 (SUM()
,AVG()
등)HAVING
→ 그룹화된 결과에 조건을 적용WHERE
은 개별 행 필터링,HAVING
은 그룹 필터링ORDER BY
→ 결과를 정렬 (오름차순ASC
/ 내림차순DESC
)
728x90