MySQL 쿼리 문법 순서 & 실행 순서

이하루·2024년 12월 28일

SQL의 문법 및 실행 순서를 정리하고자 한다.

SELECT {DISTINCT} U.id, U.name, count(P.contents)
FROM users U
LEFT JOIN posts P
ON posts.user_id = users.id
WHERE U.name LIKE '김%'
GROUP BY U.id
HAVING count(P.contents) > 3
ORDER BY U.id DESC
LIMIT 3
OFFSET 2

1. SQL 문법 작성 순서

① SELECT
② FROM
③ JOIN
④ WHERE
⑤ GROUP BY
⑥ HAVING
⑦ ORDER BY
⑧ LIMIT
⑨ OFFSET

2. SQL 문법 실행 순서

① FROM (조인, 서브쿼리 포함) : 해당 SQL에 대상이 되는 모든 테이블 정보
② ON (조인 관계) : 조인으로 결합된 각 테이블의 연결
③ WHERE (조건) : SQL의 조건을 통해 필요한 데이터 필터링
④ GROUP BY (그룹화) : 지정한 컬럼을 기준으로 그룹화
⑤ HAVING (그룹화 조건) : 그룹화 대상을 필터링
⑥ SELECT (반환 컬럼) : 필터링 된 대상의 반환 컬럼 정보
⑦ DISTINCT (중복 제거) : 필터링 된 결과의 중복 제거
⑧ ORDER BY (정렬) : 대상 레코드의 정렬 정보
⑨ LIMIT (반환 갯수) : 정렬된 대상의 반환할 행의 갯수를 지정
⑩ OFFSET (시작점) : 결과에서 건너뛸 행의 갯수를 지정 (OFFSET 3 : 결과의 4번째부터~)
※ 보통 GROUP BY/HAVING과 DISTINCT는 둘 다 중복 제거라는 목적을 가지고 있기에 같이 사용하진 않음.

profile
어제보다 더 나은 하루

0개의 댓글