>데이터 베이스 >MySQL 튜토리얼 >SQL에서 `NULL != NULL`이 항상 True를 반환하지 않는 이유는 무엇입니까?

SQL에서 `NULL != NULL`이 항상 True를 반환하지 않는 이유는 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2025-01-03 08:49:39697검색

Why Doesn't `NULL != NULL` Always Return True in SQL?

NULL이 있는 불평등이 항상 True를 반환하지 않는 이유

NULL 값을 불평등 연산자("!=")와 비교할 때, NULL은 그 자체와 같지 않기 때문에 종종 결과가 참이어야 한다고 가정합니다. 그러나 SQL과 같은 특정 상황에서는 이 가정이 유효하지 않습니다.

SQL의 삼항 논리

SQL에서 NULL은 알 수 없는 값을 나타냅니다. 이는 "알 수 없음"으로 알려진 참과 거짓을 넘어 세 번째 논리적 상태를 도입합니다. 결과적으로 NULL을 사용한 불평등 비교는 삼항 논리를 따르며 결과는 세 가지 중 하나일 수 있습니다. 옵션:

  • 거짓
  • 알 수 없음

예:

고려 다음 명령문:

WHERE (A <> B)

A와 B가 모두 NULL인 경우 위 표현식은 "알 수 없음"을 반환합니다. 왜냐하면 둘이 정말로 같지 않은지, 둘 다 알 수 없는지 확인할 방법이 없기 때문입니다.

불평등 검사의 의미

이 삼항 논리는 다음을 나타냅니다. NULL을 사용한 불일치 검사가 항상 true를 반환하는 것은 아닙니다. 정확한 결과를 보장하려면 "IS NULL" 및 "IS NOT NULL"을 사용하여 NULL 조건을 명시적으로 확인해야 합니다.

예를 들어 다음 표현식은 NULL과의 불평등 비교를 올바르게 처리합니다.

WHERE ((A <> B) OR (A IS NOT NULL AND B IS NULL) OR (A IS NULL AND B IS NOT NULL))

이러한 명시적 검사를 통합함으로써 데이터베이스는 NULL 값과 관련된 모든 가능한 사례에 대해 올바른 논리적 결과(참, 거짓 또는 알 수 없음)를 결정할 수 있습니다.

위 내용은 SQL에서 `NULL != NULL`이 항상 True를 반환하지 않는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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