-
MySQL - 쿼리 작성 순서와 실제 실행 순서프로그래밍 2023. 7. 29. 15:43반응형
복잡한 쿼리 문제를 풀 때에는 요구사항을 나눠서 하나씩 해결하는게 효과적이라는 걸 느꼈다. 그 중에서 가장 도움이 되었던 건 쿼리의 실제 실행 순서를 알면 쿼리를 짜는게 쉬워진다는 것이었다.
MySQL 기준으로 쿼리를 작성할 때에는
1. SELECT
2. FROM
3. WHERE
4. GROUP BY
5. HAVING
6. ORDER BY
의 순서로 작성하게 된다.
하지만 실제 쿼리의 실행 순서는
1. FROM
2. WHERE
3. GROUP BY
4. HAVING
5. SELECT
6. ORDER BY
순으로 실행이 된다.
이 사실을 알면 group by에서 sum, avg와 같은 함수가 어떻게 select 문에 컬럼으로 존재할 수 있는지가 해결된다. 쓴걸로 보면 select가 group by 보다 먼저 나오기 때문에 불가능해 보이지만 group by 와 having을 거친 뒤에 select가 실행되므로 충분히 가능하다. 또한 group by에 sum, count와 같은 함수로 그룹화를 하는 것도 위 사실을 알면 이해가 된다.
참고로 limit는 모든 쿼리가 실행된 결과에 대해서 컬럼수를 제한하므로 작성, 실행 모두에서 마지막에 실행된다.
반응형'프로그래밍' 카테고리의 다른 글
Java heap memory 늘리기 (0) 2024.06.26 Dockerfile 작성 시 주의할 점 (0) 2024.06.26 [Spring Boot] @ModelAttribute 와 @RequestBody 의 차이 (0) 2023.05.21 [Spring Boot] CORS 문제 (0) 2023.05.21 자바 서블릿 (Java Servlet) 정리 (0) 2022.10.31