공부기록장

[SQL] SQL select문 실행 순서 본문

▶ study/SQL

[SQL] SQL select문 실행 순서

친절한 3 2021. 4. 16. 10:31
select *
from student
where dept = '컴퓨터공학과'
group by dept
having professor = '박상원'
order by name asc;

위와 같은 select문의 실행순서는,

from -> where -> group by -> having -> select -> order by 이다.


단계별 상세 설명

1. from

: 먼저 검색하고자 하는 테이블을 반환한다. (student 테이블 반환)


2. where

: 테이블에서 원하는 조건들을 가진 행들을 반환한다.

(student 테이블에서 학과가 '컴퓨터공학과'인 행들만 반환)


3. group by

: dept로 행을 묶은 행이 반환된다.

(묶여있는 컬럼 중 가장 위에 있는 행이 반환된다.)


4. having

: 교수님이 '박상원'인 행들만을 반환한다.

(group by 출력 테이블은 가장 위에 행이 반환된 것, having 출력 테이블은 교수이름이 '박상원'이라는 조건이 들어간 것이다. 결과는 같게 나오지만 테이블의 의미는 다르므로 주의!)


5. select

: student테이블의 -> 컴퓨터공학과 학생 중 -> 교수님이름이 박상원인 -> 테이블을 반환한다.


6. order by

: 이름에 대해 오름차순으로 테이블을 검색해라.


조건이 딱 정해져 있어서 좋은 예시는 아니지만, 아무튼 select문의 쿼리 순서와 각각의 단계에서 요구하는 테이블이 무엇인지를 아는 것이 중요!
Comments