>  기사  >  데이터 베이스  >  오라클의 count1과 count*의 차이점

오라클의 count1과 count*의 차이점

下次还敢
下次还敢원래의
2024-04-30 06:12:15660검색

Oracle에서 COUNT(1)과 COUNT(*)의 차이점은 다음과 같습니다. COUNT(1)는 null 값을 무시하고 비어 있지 않은 행만 계산합니다. COUNT(*)는 null 값을 포함하여 모든 행을 계산합니다. 선택은 Null 값이 있는지 여부, 성능 우선순위 또는 일관성에 따라 달라집니다.

오라클의 count1과 count*의 차이점

Oracle의 COUNT(1)과 COUNT(*)의 차이점

Oracle의 COUNT(1)과 COUNT(*)는 모두 테이블의 레코드 수를 계산하는 데 사용되는 집계 함수입니다. , 그러나 둘 사이에는 미묘한 차이가 있습니다.

COUNT(1)

  • null이 아닌 값이 있는 행만 계산합니다.
  • 테이블에 null 값이 있을 때 잘못된 계산을 방지합니다.
  • Null 값을 무시하므로 COUNT(*)보다 약간 빠르게 실행됩니다.

COUNT(*)

  • null 값이 있는 행을 포함하여 모든 행의 개수를 계산합니다.
  • 테이블에 null 값이 있어도 정확한 개수를 반환합니다.
  • Null 값이 포함되어 있으므로 COUNT(1)보다 약간 느리게 실행될 수 있습니다.

어느 것을 선택할까요?

COUNT(1) 또는 COUNT(*) 선택은 다음 요인에 따라 달라집니다.

  • null 값의 존재 여부: 테이블에서 null 값이 가능한 경우 잘못된 계산을 방지하려면 COUNT(1)을 사용하세요.
  • 성능: 속도가 중요하고 테이블에 null 값이 없다고 확신하는 경우 COUNT(1)을 사용할 수 있습니다.
  • 일관성: null 값을 포함하여 모든 행에서 일관된 개수를 원할 경우 COUNT(*)를 사용해야 합니다.

다음 데이터를 포함하는 students라는 테이블이 있다고 가정합니다.

<code>| id | name | age |
|---|---|---|
| 1 | John | 20 |
| 2 | NULL | 25 |
| 3 | Mary | 22 |</code>

COUNT(1)을 사용하여 이 테이블을 쿼리하면 다음과 같은 결과가 반환됩니다.

<code>SELECT COUNT(1) FROM students;
2</code>

이것은 COUNT( 1) NULL 값을 무시합니다.

이 테이블을 COUNT(*)를 사용하여 쿼리하면 다음과 같은 결과가 반환됩니다.

<code>SELECT COUNT(*) FROM students;
3</code>

이것은 COUNT(*)에 NULL 값이 포함되어 있기 때문입니다.

위 내용은 오라클의 count1과 count*의 차이점의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.