의미
- DBMS에서 아직 정해지지 않은 값을 의미
- 0과 빈 문자열(’ ‘)과는 다른 개념
- 모델 설계 시 각 컬럼 별로 NULL을 허용할 지를 결정함
특성
- NULL을 포함한 연산결과는 항상 NULL
→ 컬럼에 공백으로 보이는 것은 NULL로 생각해야 함 . 이 때, NULL을 포함한 연산결과는 NULL이 리턴됨(NULL을 사전 치환하면 연산 가능)
- 집계함수는 NULL을 제외한 연산 결과 리턴
→ SUM, AVG, MIN, MAX 등의 함수는 항상 NULL을 무시함. NULL일 경우 제외되고 NOT NULL인 행만 세어서 리턴함
출제
- ISNULL함수는 결과값이 NULL일 경우 지정된 값을 반환한다.
- 칼럼의 NULL값을 확인할 때는 ISNULL을 사용해야 한다.
- SELECT COUNT(COL1) FROM TAB1 WHERE COL2 = NULL --> 이 WHERE절은 잘못되어있다.
- NULL 비교는 오직 IS NULL, IS NOT NULL로만 가능
NULL의 ERD 표기법과 바커 표기

NULL 관련 함수
NVL(표현식1, 표현식2) - ORACLE , ISNULL(표현식1, 표현식1) - SQL Server
- 표현식 1의 결과값이 null이면 표현식 2의 값을 출력한다.
- 단, 표현식 1과 표현식2의 데이터 타입이 같아야 한다.
- null 관련 가장 많이 사용되는 함수이다.
NVL 함수는 칼럼의 값이 NULL인 경우 특정 값으로 치환하기 위해서 사용한다.
NVL2 함수는 칼럼의 값이 NULL인 경우와 NULL이 아닌 경우 두 가지 케이스 모두 특정 값을 반환할 수 있다.
NVL 함수는 NULL인 경우 단순 기본값을 부여하기 위해서 자주 사용하며, NVL2 함수는 NULL을 기준으로 If ~ else ~와 같이 판단하여 특정 값을 반환할 수 있다.
NVL2("값", "지정값1", "지정값2")
NVL2 함수는 NULL이 아닌 경우 지정값1을 출력하고, NULL인 경우 지정값2를 출력한다.
- 함수 : NVL2("값", "지정값1", "지정값2") // NVL2("값", "NOT NULL", "NULL")

NULLIF(표현식1, 표현식2)
- 표현식1과 표현식2가 같으면 NULL을 같지 않으면 표현식 1을 리턴한다.
ex) SELECT ENAME, EMPNO, MGR, NULLIF(MGR, 7698) AS NM FROM EMP;
COALESCE (표현식1, 표현식2,...)
- 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다.
- 모든 표현식이 NULL이면 NULL을 리턴한다.
DECODE(표현식1, 표현식2, 표현식3, NULL)
표현식1 = 표현식2 → 표현식3 , 아니면 NULL
'자격증 > SQLD' 카테고리의 다른 글
SQLD 그룹함수(ROLLUP,CUBE,GROUPING SETS) (0) | 2025.01.04 |
---|---|
SQLD 1과목 [2장 데이터 모델과 SQL] (2) | 2025.01.02 |
SQLD 1과목 [1장 데이터 모델링의 이해] (0) | 2025.01.02 |
제54회 SQL 개발자(SQLD) (0) | 2025.01.02 |