Oracle/SQL2021. 6. 15. 10:08

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
Posted by 자수성가한 부자