NULL 이란
컬럼의 값이 무엇인지 모른다는 뜻이다.
DML을 이용하여 자료를 다룰 때는 항상 NULL을 염두에 두고 다루어야 한다.
숫자(NUMBER)형 자료를 NULL과 연산(+ - * /)을 하면 결과는 항상 NULL 이 된다.
NULL이 포함될 우려가 있는 컬럼을 이용할 때는 항상 NVL 함수를 이용하여 값을 치환시켜 사용하는 습관을 들여야 한다.
숫자형 컬럼이나 변수에 NULL이 들어갈 우려가 있다면 0이나 1 등 다른 적절한 숫자로 치환을 한 후 연산에 사용한다.
문자형 컬럼이나 변수에 NULL이 들어갈 우려가 있다면 ' '(스페이스)나 다른 특정 문자값으로 치환하여 조건 절에 이용한다.
조건 절에서 비교 연산자를 사용할 때에도 NULL의비교는 일반 값과 다르게 비교한다.
A라는 문자형 컬럼의 값이 1과 같으나 또는 다르냐를 조건에서 비교할 때 다음과 같이 쓰게 된다.
같은지 비교 : WHERE A = '1'
다른지 비교 : WHERE A <> '1'
하지만 A라는 문자형 컬럼의 값이 NULL 인지를 비교하고 싶을 때는 다음과 같이 사용하면 된다.
같은지 비교 : WHERE A IS NULL
다른지 비교 : WHERE A IS NOT NULL
절대로 A = NULL 또는 A <> NULL로 사용하면 안 된다.
에러가 발생하지는 않지만 의도한 바와 전혀 다른 결과가 나올 수 있기 때문이다.
참고 : 전문가로 가는 지름길 오라클 실습 P.24
'Oracle > SQL' 카테고리의 다른 글
CONCATENATION (0) | 2021.06.15 |
---|---|
ALIAS (컬럼, 테이블) (0) | 2021.06.15 |
SELECT의 구조 (0) | 2021.06.15 |
DML의 종류 (0) | 2021.06.15 |
SQL 교육 커리큘럼 (0) | 2018.03.27 |