SQL 쿼리에서 계산된 열의 올바른 위치: WHERE 또는 HAVING?
SQL에서는 데이터를 검색하는 데 사용되는 조건을 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!