데이터베이스
[SQL] WHERE 과 HAVING 의 차이
담쏙
2021. 11. 27. 20:55
728x90
WHERE
SELECT * FROM 테이블 WHERE 조건절;
WHERE 은 기본적인 조건절로 항상 FROM 뒤에 위치하며 다양한 비교 연산자로 구체적인 조건을 줄 수 있다.
HAVING
SELECT * FROM 테이블 GROUP BY 필드 HAVING 조건절;
항상 GROUP BY 뒤에 위치하며 WHERE 과 마찬가지로 다양한 비교 연산자로 조건을 줄 수 있다.
둘다 필드에 조건을 줄 수 있다는 것은 동일하나, WHERE은 기본적으로 모든 필드에 조건을 둘 수 있지만 HAVING은 GROUP BY로 그룹화 된 필드에 조건을 줄 수 있다. 또한, HAVING에서 조건을 줄 필드는 SELECT에 반드시 명시되어 있어야 한다.
만약 두 조건절을 함께 사용한다면 아래와 같은 형태가 된다.
SELECT * FROM 테이블명 WHERE 조건절 GROUP BY 컬럼 HAVING 조건절;