1. FROM, JOIN

 

- 먼저 FROM ( 테이블 ) JOIN ( 테이블 ) 이 실행되어 데이터셋을 뽑아냅니다.

 

- Sub Query문 (서브쿼리)도 실행되며 임시 테이블이 생성될 수 있습니다.

 

 

 

2. WHERE

 

- 1에서 뽑아낸 데이터셋에서 WHERE 조건문에 기재된 제약조건 대로 이를 충족하는 행만 뽑아냅니다.

 

 

 

3. GROUP BY

 

- 2에서 뽑아낸 데이터셋에 대해서 그룹조건을 적용하여 그룹으로 묶어줍니다.

 

 

 

4. HAVING

 

- 그룹으로 묶여진 데이터셋에 대해서 HAVING 조건절을 만족하는 행만이 남습니다.

 

 

 

5. SELECT

 

- 4까지 완료된 데이터 셋에 대하여 SELECT문을 실행하여 원하는 칼럼을 설정합니다.

 

 

 

6. DINSTINCT

 

- DISTINCT를 사용할 경우 이 단계에서 중복되는 행은 제거 됩니다.

 

 

 

 

7. ORDER BY

 

- 지금까지 만들어진 데이터셋을 어떤식으로 정렬 할 것인지 정합니다(오름차순, 내림차순)

 

 

 

8. LIMIT / OFFSET

 

- 최종적으로 범위를 지정 (지정된 범위를 벗어나는 행을 제거) 합니다.

 

 

 

 

 

[출처]:

https://sqlbolt.com/lesson/select_queries_order_of_execution
jaimemin.tistory.com/1475?category=1060172

 

데이터베이스 쿼리 실행 순서

회사를 직접적으로 언급할 수는 없지만 데이터베이스 쿼리 실행 순서를 질문받은 적 있습니다. 코딩 테스트 난이도 정도의 쿼리 작성에는 어느 정도 자신이 있었지만 실행 순서는 한 번도 생각

jaimemin.tistory.com

 

SQLBolt - Learn SQL - SQL Lesson 12: Order of execution of a Query

Now that we have an idea of all the parts of a query, we can now talk about how they all fit together in the context of a complete query. Complete SELECT query SELECT DISTINCT column, AGG_FUNC(column_or_expression), … FROM mytable JOIN another_table ON m

sqlbolt.com

 

'Web & App > Mysql' 카테고리의 다른 글

Pagenation(페이징) [Offset-based, Cursor-based)  (0) 2020.10.17
mysql 외부 접속 허용  (0) 2020.08.17

+ Recent posts