즐겁게 배우는 SQL
Thedifference between WHERE and HAVING
• https://sql-bits.com/the-difference-between-where-and-having/에서 잘 설명하고 있음
• 독자 여러분들을 위해 다시 한 번 복습할 수 있는 내용을 정리
WHERE와 HAVING을 언제 어느 때 사용할까?
3.
즐겁게 배우는 SQL
WHERE
•where은 질의 실행에 앞서 살펴봄
• 질의가 반환할 행(row)를 결정한다고 볼 수도 있지만
• 조금 더 정확하게 말해서 “질의가 처리할 행을 결정"
HAVING
• having은 질의 실행 후 살펴봄
• 모든 행을 처리한 다음에 클라이언트에 반환할 행을 결정
즐겁게 배우는 SQL
성능고려
• where와 having를 섞어 사용할 수 있을까?
• 이론적으로는 가능하지만…
• HAVING을 사용할 경우 모든 행을 다 읽어서 조건에 맞는 행만 반환하므로 불필요하게 느려지는 문제가 발생
• WHERE를 사용할 경우 관심있는 행만 읽으므로 최적화가 가능함
• 참고: 몇몇 RDBMS는 불필요한 HAVING을 WHERE 절로 자동 변환하는 기능이 있지만, 여기 의존하면 안 됨!
6.
발표자 소개
기술 배경
전문검색 엔진, 임베디드 시스템(리눅스 커널 디바이스 드라이버), 빅데이터/인공지능 연구 개발,
고성능 고가용성 데이터베이스, 클라우드 컴퓨팅
주요활동
IT 전문서 번역 (클린 코드, 피플웨어, 해커: 광기의 랩소디, 게임 엔진 블랙 북 등)
개발강의 (삼성전자, SK C&C, 현대자동차 기술 세미나와 교육)
활동채널
블로그: https://jhrogue.blogspot.com
슬라이드 셰어: https://www.slideshare.net/jrogue/presentations
유튜브: https://www.youtube.com/c/박재호dev
문의 jrogue@gmail.com
박재호