> 데이터 베이스 > MySQL 튜토리얼 > WHERE 또는 HAVING: 계산된 열은 SQL에서 어디에 들어가야 합니까?

WHERE 또는 HAVING: 계산된 열은 SQL에서 어디에 들어가야 합니까?

Susan Sarandon
풀어 주다: 2025-01-19 22:47:09
원래의
437명이 탐색했습니다.

WHERE or HAVING: Where Should Calculated Columns Go in SQL?

SQL 쿼리에서 계산된 열의 올바른 위치: WHERE 또는 HAVING?

SQL에서는 데이터를 검색하는 데 사용되는 조건을 WHERE 또는 HAVING 절에 배치할 수 있습니다. 계산 열을 사용할 때 효율적인 쿼리를 위해서는 정확한 위치를 이해하는 것이 중요합니다.

장소와 소유: 주요 차이점

  • WHERE 절: 데이터 선택 전에 을 필터링하여 모든 테이블 열 조건을 사용할 수 있도록 합니다.
  • HAVING 절: 데이터 선택을 필터링하여 선택한 열, 별칭 또는 집계 함수를 사용하여 조건을 허용합니다.

계산된 열 위치

계산된 열은 WHERE 절이 아닌 HAVING 절에 배치되어야 합니다. 그 이유는 다음과 같습니다.

  • WHERE 절은 원본 테이블 데이터에 적용됩니다.
  • HAVING 절은 계산된 변환 데이터에 적용됩니다.

예:

'id' 및 'value' 열이 포함된 테이블을 생각해 보세요.

<code class="language-sql">CREATE TABLE `table` (
  `id` int(10) unsigned NOT NULL AUTO_INCREMENT,
  `value` int(10) unsigned NOT NULL,
  PRIMARY KEY (`id`),
  KEY `value` (`value`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;</code>
로그인 후 복사

5보다 큰 값을 얻으려면 두 가지 쿼리를 사용할 수 있습니다.

<code class="language-sql">-- WHERE 子句
SELECT `value` v FROM `table` WHERE `value` > 5;

-- HAVING 子句
SELECT `value` v FROM `table` HAVING `value` > 5;</code>
로그인 후 복사

이 두 쿼리는 동일한 결과를 반환하지만 중요한 차이점이 있습니다. WHERE 절에서는 별칭 'v'를 사용하면 오류가 발생하지만 HAVING 절에서는 이를 허용합니다.

성능에 미치는 영향

대형 테이블의 계산 열에 WHERE 절을 사용하면 성능에 부정적인 영향을 미칠 수 있습니다. 이는 이 계산되기 전에 필터링이 적용되어 잠재적으로 불필요한 계산이 발생할 수 있기 때문입니다. 필터링된 데이터만 사용하여 HAVING 절에 계산을 배치하여 성능을 향상시킵니다.

결론

계산된 열을 사용할 때 올바른 계산과 최적의 성능을 보장하려면 HAVING 절에 배치해야 합니다. WHERE 절과 HAVING 절을 구별하면 더 큰 유연성과 효율적인 데이터 필터링이 가능해집니다.

위 내용은 WHERE 또는 HAVING: 계산된 열은 SQL에서 어디에 들어가야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
저자별 최신 기사
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿