집 >데이터 베이스 >MySQL 튜토리얼 >SQL NULL 비교: 'x = NULL' 대신 'x IS 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'을 사용하세요. 다음은 필수 행을 반환하는 예입니다.
<code class="language-sql">SELECT * FROM t WHERE x is null</code>
이 쿼리는 다음을 반환합니다:
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 중국어 웹사이트의 기타 관련 기사를 참조하세요!