티스토리 뷰

Programming/SQL

SQL 쿼리 실행순서 정리

감성적인 개발자 2024. 1. 17. 23:11

1. FROM 

테이블이 존재하는지 USER가 해당 테이블에 대한 SELECT 권한이 있는지 먼저 체크한다. 만약 JOIN절이 존재한다면, JOIN을 먼저 수행한다음 FROM절을 수행한다.

 

2. WHERE

JOIN 혹은 FROM 절에서 가져온 테이블에서 조건에 맞는 ROW 만을 가져온다.

 

3. GROUP BY

명시한 컬럼들을 그룹화하며, 집계함수를 이용할 때 주로 사용한다.

 

4. HAVING

GROUP BY 절이 존재한다면 다음으로 HAVING 절을 수행한다. WHERE 절과 마찬가지로 조건에 맞는 ROW를 가져온다.

WHERE절은 테이블 상의 모든 필드에 조건에 두지만, HAVING은 GROUP BY에 의해 그룹화된 결과에 대해 조건을 준다. 

 

--WHERE 절 사용
SELECT department, salary
FROM   employees
WHERE  salary> 2000;

--HAVING절 사용 
SELECT department, AVG(salary) as avg_salary
FROM   employees
GROUP  BY department
HAVING AVG(salary) > 50000;

 

5. SELECT

가져온 데이터에서 어떤 행을 출력할지 선택한다.

 

6. DISTINCT

중복행을 필터링해서 고유한 행만을 반환한다. 

 

7. ORDER BY

특정 열을 기준으로 오름차순 또는 내림차순 정렬한다. 

* 거의 마지막에 실행되므로 SELECT 절에서 ALIAS를 준 컬럼이 있다면 ORDER BY 절에서 사용 가능하다.

 

8. LIMIT

LIMIT 내에 속하는 행만 표시하도록 제한한다. 이전에 평가된 많은 행 중 특정 행만 LIMIT하는 것은 효율적이지 않으므로 권장되지 않는다.

 

 

 

참조

https://www.geeksforgeeks.org/order-of-execution-of-sql-queries/

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함