SQL 기본 및 활용
🗄️ SQLSQL 기본★★★★★거의 매회

NULL — 값이 아니라 '모른다'

NULL 은 0 도 빈 문자열도 아니다. 어떤 연산을 해도 NULL 이고, 비교하면 참도 거짓도 아니다.

NULLIS NULLNVLCOALESCECOUNT(*)

왜 그런지까지

NULL 에 무엇을 더하거나 이어 붙여도 결과는 NULL 이다. 그래서 NULL 을 다룰 때는 NVL(오라클)·COALESCE(표준) 같은 함수로 먼저 바꿔 놓아야 한다.

비교도 특별하다. `= NULL` 이나 `<> NULL` 은 절대 참이 되지 않으므로 `IS NULL`·`IS NOT NULL` 을 써야 한다. 집계 함수는 NULL 을 아예 빼고 계산하는데, COUNT(*) 만은 행 수를 세므로 NULL 이 있어도 함께 센다.

돌려 보기

NULL 이 섞이면 어떻게 되는지 한눈에

헷갈리는 것

COUNT(*) vs COUNT(열)

COUNT(*) 는 행 수를 세므로 NULL 이 있어도 센다. COUNT(열) 은 그 열이 NULL 인 행을 빼고 센다.

= NULL vs IS NULL

= NULL 은 어떤 경우에도 참이 되지 않는다. NULL 인지 확인하려면 IS NULL 을 써야 한다.

확인 문제

넣어 두면 오늘 · 1일 · 3일 · 7일 · 14일 · 30일 간격으로 다시 물어봅니다