▶ 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문의 쿼리 순서와 각각의 단계에서 요구하는 테이블이 무엇인지를 아는 것이 중요!