> 데이터 베이스 > MySQL 튜토리얼 > SQL NULL 비교: 'x = NULL' 대신 'x IS NULL'을 사용하는 이유는 무엇입니까?

SQL NULL 비교: 'x = NULL' 대신 'x IS NULL'을 사용하는 이유는 무엇입니까?

DDD
풀어 주다: 2025-01-21 12:56:15
원래의
852명이 탐색했습니다.

SQL NULL Comparisons: Why Use 'x IS NULL' Instead of 'x = NULL'?

SQL: 'x is null'과 'x = null'의 차이점 이해

SQL은 열에서 NULL 값을 테스트하는 두 가지 방법인 'x is null'과 'x = null'을 제공합니다. 이 두 표현은 비슷해 보이지만 동작은 크게 다릅니다.

'x = null' 대 'x는 null': 주요 차이점

'x = null'이라는 표현은 'x'의 값이 리터럴 NULL 값과 같은지 확인하는 비교 연산입니다. 그러나 SQL에서는 'x = null'을 포함하여 NULL 값과 관련된 모든 비교는 항상 'null'을 반환합니다. 이는 SQL에서 NULL 값은 알 수 없는 값을 나타내기 때문에 다른 값과 같은지 판단할 수 없기 때문이다.

반대로 'x is null'은 NULL 값이 있는지 구체적으로 테스트하는 표현식입니다. 'x'가 NULL이면 'true'를 반환하고, 그렇지 않으면 'false'를 반환합니다. 이를 통해 'x = null'과 관련된 모호성 없이 NULL 값을 정확하게 테스트할 수 있습니다.

'x = null'이 작동하지 않는 이유

앞서 언급했듯이 'x = null'은 SQL에서 항상 'null'을 반환합니다. 이는 WHERE 절에서 사용될 때 이 경우 'null'이 false로 간주되므로 일치하는 행을 생성하지 않음을 의미합니다.

다음 형식을 고려하세요.

X Y
1 null
null 1

'SELECT * FROM t WHERE x = null' 쿼리를 실행하면 'x'가 'null'인 행이 있어도 아무 행도 가져오지 않습니다. 이는 'x = null'이 항상 WHERE 절에서 false인 'null'로 평가되기 때문입니다.

정확한 NULL 값 테스트를 위해 'x is null' 사용

NULL 값을 올바르게 테스트하려면 'x = null' 대신 'x is null'을 사용하세요. 다음은 필수 행을 반환하는 예입니다.

SELECT * FROM t WHERE x is null
로그인 후 복사

이 쿼리는 다음을 반환합니다:

X Y
null 1

결론

효과적인 SQL 프로그래밍을 위해서는 'x is null'과 'x = null'의 차이점을 이해하는 것이 중요합니다. 'x = null'은 'x'를 리터럴 NULL 값과 비교하여 항상 'null'을 반환하는 반면, 'x is null'은 구체적으로 NULL 값이 있는지 테스트합니다. NULL 값을 테스트할 때는 정확한 결과를 위해 항상 'x is null'을 사용하세요.

위 내용은 SQL NULL 비교: 'x = NULL' 대신 'x IS NULL'을 사용하는 이유는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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