NULL
IS NULL연산자 본문
IS NULL을 하기전 NULL을 먼저 살펴보겠다.
NULL은 중요한 의미가 있는 특수한 데이터 형식이다.
SAL열에 12를 곱하고 추가 수당 열 값을 더한 결과는
나오는 경우도 있고 아닌 경우도 있다.
결과가 나오지 않는 현상은 연산에 사용한 추가 수당
열 값이 비어 있는 행에서만 나타난다.
위와 같이 NULL은 데이터 값이 완전히 비어있는 상태를 말한다.
숫자 0은 값이 존재한다는 뜻이므로 혼동하지 않도록 주의해야한다.
의미 | 예시 |
값이 존재하지 않음 | 통장을 개설한 적 없는 은행 고객의 계좌번호 |
해당 사항 없음 | 미혼인 고객의 결혼기념일 |
노출할 수 없는 값 | 고객 비번찾기같은 열람제한하는 특정 개인정보 |
확정되지 않은 값 | 미성년자의 출신 대학 |
따라서 NULL은 "값 자체가 존재 하지 않는 상태" 이거나 "현재 무슨 값인지 확정되지 않은 상태" 를 나타내는 데이터에 사용한다. 이와 같이 연산대상이 NULL일 때 연산 자체가 무의미해지는 현상이 발생한다. 뭘 해도 NULL.
위 코드를 보면 추가 수당 열 값이 NULL인 행이 나와야 할 것 같지만
실제로는 출력되는 데이터가 없다. NULL 산술 연산자와 비교 연산자로
비교해도 값이 NULL이 되기 때문이다.
WHERE절 조건식 결과 값이 true인 행만 출력하는데
이 처럼 연산 결과 값이 NULL이 되어 버리면 결과 값이
false도 true도 아니게 되므로 출력대상에서 제외된다.
특정 열 또는 연산결과 값이 NULL인지 확인하려면 IS NULL연산자를 사용해야한다.
따라서 위에 코드가 의도한 의미대로 추가 수당 열 값이 NULL인 데이터를 출력하고 싶다면
IS NULL을 사용하면 된다.
IS NULL 연산자를 사용하면 추가 수당열 값이 존재하지 않는 데이터만 출력한다.
반대로, 즉 추가수당 열 값이 NULL이 아닌 데이터만 조회하려면 IS NOT NULL을 사용한다.
데이터가 NULL인지 확인하는 용도로만 사용하는
IS NULL, IS NOT NILL 연산자는 매우 자주 사용되므로 꼭 기억하자.
'SQL > Oracle' 카테고리의 다른 글
대소문자 바꿔주는 문자 함수 (UPPER, LOWER, INITCAP) (0) | 2022.03.16 |
---|---|
집합 연산자 (UNION, UNION ALL, MINUS, INTERSECT) (0) | 2022.03.16 |
LIKE 연산자와 와일드 카드 ESCAPE절 (0) | 2022.03.09 |
BETWEEN 연산자 (0) | 2022.03.09 |
IN 연산자 (0) | 2022.03.09 |