주요 차이점 : 'Having'과 'Where'는 모두 SQL에서 활용할 수있는 절입니다. 'Where'절은 먼저 테이블의 개별 행에 적용되며 절의 조건을 충족시키는 행이 함께 그룹화됩니다. 'Having'절은 결과 집합의 행에 적용됩니다. 'Having'절의 조건을 충족시키는 그룹이 쿼리 출력에 나타납니다.
'Having'과 'Where'는 모두 SQL에서 활용할 수있는 절입니다. SQL은 관계형 데이터베이스 관리 시스템 (RDBMS)에서 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어입니다. 그것은 다음과 같은 기능을 가지고 있습니다 :
- 데이터 삽입,
- 업데이트 및 삭제,
- 액세스 및 제어,
- 스키마 제어 및 수정.
다음과 같은 요소로 세분화됩니다.
- 표현식
- 조건부
- 검색어
- 진술
- 조항
SQL의 절에는 다음이 포함됩니다.
- 제약 조건 절
- 업데이트 절
- From 절
- 그룹 By 절
- Order By 절
- 현재의 절
- 유행
- Where 절
'가지다'와 '어디에'는이 많은 절들 중 단지 두 가지입니다. SQL의 명령문은 다음 순서로 실행될 수 있습니다.
- FROM 절
- WHERE 절
- GROUP BY 절
- HAVING 절
- SELECT 절
- ORDER BY 절
'Having'절은 'Select'문과 'Group By'절 뒤에 만 사용됩니다. 한편, 'Where'절은 'Select'문 이외의 다른 명령문과 함께 사용할 수 있습니다. 그러나 'Group By'절 앞에 사용됩니다. 만약 'Group By'절이 사용되지 않는다면 'Having'절은 'Where'절처럼 동작합니다.
'Where'절은 먼저 테이블의 개별 행에 적용되며 절의 조건을 충족시키는 행이 함께 그룹화됩니다. 'Having'절은 결과 집합의 행에 적용됩니다. 'Having'절의 조건을 충족시키는 그룹이 쿼리 출력에 나타납니다.
'Having'절은 술어를 사용하는 group by 절에 의해 리턴되는 레코드를 필터링하는 데 사용됩니다. 'Having'절을 사용하면 'Group By'절의 결과를 제한하고 지정된 행만 선택할 수 있습니다.
한편 'Where'절은 쿼리에 포함될 행을 선택하는 데 사용됩니다. 이 절에서는 = 또는 equal 또는 not equal, >보다 크거나 =보다 크거나 같음, <= 또는 작거나 같음, between, like 및 in과 같은 연산자를 기반으로하는 비교 술어를 사용합니다. 'Where '절은 쿼리에서 설정 한 요구 사항을 충족하지 않는 행을 제외합니다.
'Where'절은 'From'절에 지정된 테이블의 개별 행을 선택하는 데 사용됩니다. 다른 관련없는 데이터를 제외하고 테이블에서 특정 정보를 검색하는 데 사용됩니다. 이렇게하면 쿼리의 처리 시간이 증가하는 경향이 있습니다.