inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

sql -sec2

서재완
0

select 문 실행순서

image

실행 순서에 맞춰서 쿼리문을 작성하는 게, 튜닝 관점에서 유리하고, 성능 낭비를 방지할 수 있다.

실행 순서 때문에 ROWNUM 순서가 바뀐다.

FROM + JOIN

조회를 하기 위한 테이블을 가져옴. JOIN이 필요하다면 이때 진행

WHERE

받아온 테이블에 조건을 검

GROUP BY

집계 기준으로 사용할 그룹 칼럼 지정.

GROUP BY가 걸려있을 때 실행 순서가 헷갈리긴함.

HAVING

해당 절에서 GROUP에 대한 조건을 검. 이때 select에서 지정한 칼럼을 사용함.

SELECT

조건이 걸린 테이블에서 원하는 칼럼만 들고 오는 것.

ORDER BY

행의 순서 정렬

LIMIT

결과 중 몇 개의 행을 보여줄 지 결정


쿼리 쓰는 순서

테이블 -> 조건 -> 칼럼 -> (집계) -> (집계 조건) -> 정렬


주의해야할 쿼리

1. WHERE절이 SELECT보다 먼저 실행되기때문에 full_name변수명을 조건으로 사용할 수 없다.

SELECT CONCAT(first_name, last_name) AS full_name
FROM user
WHERE full_name = 'VioletBeach';
  1. 이때는 문제 없이 돌아감. 실행 순서가 어떻게 되는 걸까

SELECT gender, COUNT(emp_no) as people_cnt
FROM EMPLOYEES
GROUP BY gender
HAVING people_cnt > 130000

GROUP BY에서는 select에서 칼럼명 변경한 칼럼 사용 가능

이유 : mysql에서는 GROUP BY,HAVING을 평가하기 전에 select 절을 일부 평가하기 때문에 alias 사용이 가능하다.

답변 0