2025-08-15 17:08

Tags:

SQLD 시험 대비 NULL 핵심 정리 (암기 노트)

SQLD 시험에서 NULL은 단골 출제 주제입니다. 단순히 ‘빈 값’이라고 생각하면 반드시 함정에 빠지게 됩니다. 아래 핵심 개념과 특징을 정확히 이해하고 암기하는 것이 중요합니다.

1. NULL의 핵심 개념: ‘값(Value)‘이 아닌 ‘상태(State)’

가장 먼저 머릿속에 각인해야 할 사실입니다.

  • NULL은 숫자 0, 공백(’ ’), 빈 문자열(”)과 완전히 다릅니다.

  • NULL은 ‘알 수 없는 값(Unknown)’, ‘존재하지 않는 값’, ‘적용할 수 없는 값’ 등을 의미하는 특별한 **‘상태’ 또는 ‘마커(Marker)‘**입니다.

  • 메모리 공간도 차지하지 않는, 말 그대로 ‘정의되지 않은’ 상태입니다.

암기 Point: “NULL은 값이 아니다.” 이 한 문장에서 모든 NULL 관련 규칙이 파생됩니다.

2. 시험에 꼭 나오는 NULL의 4대 특징

① 비교 연산: IS NULL을 사용해야만 하는 이유

  • ````=, !=, <>` 등 모든 비교 연산자로 NULL과 비교하면 결과는 항상 **‘알 수 없음(UNKNOWN)‘**이 됩니다.```

  • WHERE 컬럼 = NULL 이라는 조건은 TRUE가 아니므로 데이터를 절대로 찾아낼 수 없습니다.

  • NULL = NULL 역시 TRUE가 아닌 UNKNOWN입니다. (알 수 없는 것과 알 수 없는 것이 같다고 말할 수 없기 때문)

구분올바른 표현잘못된 표현
NULL 찾기WHERE 컬럼 IS NULLWHERE 컬럼 = NULL
NULL 아닌 값 찾기WHERE 컬럼 IS NOT NULLWHERE 컬럼 != NULL

② 연산: NULL은 모든 것을 NULL로 만든다

  • NULL과 함께 수행된 **산술 연산(+,-,*,/)**의 결과는 항상 NULL입니다.

    • 100 + NULLNULL
  • NULL과 함께 수행된 문자열 결합 연산의 결과도 NULL입니다. (Oracle의 ||, SQL Server의 + 등)

    • 'ABC' + NULLNULL

③ 집계 함수: 똑똑하게 NULL을 무시한다

집계 함수는 연산 대상에서 NULL을 자동으로 제외합니다. 이 부분이 시험에 매우 자주 출제됩니다.

  • COUNT(*): 행 전체의 개수를 세므로 NULL과 무관하게 모든 행을 카운트합니다.

  • COUNT(컬럼명): 해당 컬럼에서 NULL이 아닌 값의 개수만 카운트합니다.

  • SUM(컬럼명), AVG(컬럼명): NULL인 행을 제외하고 합계와 평균을 계산합니다.

    • 주의! AVG(컬럼)SUM(컬럼) / COUNT(*)아니라, SUM(컬럼) / COUNT(컬럼) 입니다. 분모가 달라지는 점을 노리는 문제가 자주 나옵니다.

④ 정렬: DBMS마다 규칙이 다르다

  • ORDER BY 절에서 NULL은 DBMS에 따라 맨 처음(가장 작은 값) 또는 맨 마지막(가장 큰 값)에 위치합니다.

    • Oracle: NULL을 가장 큰 값으로 취급하여 오름차순(ASC)에서는 맨 마지막, 내림차순(DESC)에서는 맨 처음에 정렬됩니다.

    • SQL Server: NULL을 가장 작은 값으로 취급하여 오름차순(ASC)에서는 맨 처음, 내림차순(DESC)에서는 맨 마지막에 정렬됩니다.

    • 이 순서를 명시적으로 제어하고 싶을 때 NULLS FIRST, NULLS LAST 옵션을 사용합니다. (Oracle, PostgreSQL 등에서 지원)

3. NULL 처리 함수: COALESCE를 기억하라

쿼리 결과에서 NULL을 다른 특정 값(주로 0 또는 ‘N/A’)으로 변환해야 할 때가 많습니다.

  • COALESCE(표현식1, 표현식2, ...): 인수 중에서 NULL이 아닌 첫 번째 값을 반환하는 표준 함수입니다.

    • COALESCE(bonus, 0) → bonus 컬럼 값이 NULL이면 0을, 아니면 원래 bonus 값을 반환합니다.
  • DBMS별 함수: NVL(Oracle), ISNULL(SQL Server), IFNULL(MySQL) 등이 있지만, 이식성이 높은 표준 함수 COALESCE를 우선적으로 기억하는 것이 좋습니다.

최종 암기 Tip 💡

시험장에서 NULL 관련 문제가 나오면, “NULL은 유령이다”라고 생각해 보세요.

  • 유령은 잡을 수 없다 (= NULL 안됨) → IS NULL로 존재만 확인해야 한다.

  • 유령과 닿으면 나도 유령이 된다 (+ NULLNULL) → 연산 결과는 NULL이다.

  • 단체 사진에 유령은 찍히지 않는다 (COUNT(컬럼)) → 집계 함수는 NULL을 제외한다.

이 정리 노트를 기반으로 기출문제를 풀어보시면 NULL 관련 문제에 자신감이 생길 겁니다.

레퍼런스(References)

NULL