본문으로 건너뛰기
실습하기

NULL과 NOT NULL

SQL에서 NULL 값은 누락되었거나 알 수 없는 데이터를 의미합니다. 이는 숫자 0(0)이나 빈 문자열('')과 동일하지 않습니다. 말 그대로 "값이 없음"을 뜻합니다.


NULL 값

데이터가 완전하지 않을 때 어떤 컬럼에는 NULL이 들어갈 수 있습니다. 예를 들어, 고객이 아직 이메일을 제공하지 않은 경우가 있습니다.


IS NULL로 NULL 확인하기

IS NULL 또는 IS NOT NULL을 사용해 NULL 값을 확인할 수 있습니다.

IS NULL 연산자는 값이 NULL이면 TRUE를 반환합니다.

이메일이 없는 고객 찾기
SELECT name
FROM clients
WHERE email IS NULL;

위 예시는 이메일을 제공하지 않은 고객을 찾는 방법을 보여줍니다.


NULL이 아닌 값에 대해 IS NOT NULL

IS NOT NULL 연산자는 값이 NULL이 아니면 TRUE를 반환합니다.

이메일이 있는 고객 찾기
SELECT name
FROM clients
WHERE email IS NOT NULL;

위 예시는 이메일을 제공한 고객을 찾는 방법을 보여줍니다.

NULL과의 비교에는 = 연산자를 사용할 수 없습니다. 반드시 IS NULL 또는 IS NOT NULL을 사용하세요.


NOT NULL 제약

NOT NULL 제약은 컬럼에 누락된 값이 들어가는 것을 방지합니다.

예를 들어, 아래 쿼리는 idname 컬럼에 NOT NULL 제약을 둔 테이블을 생성합니다.

NOT NULL 제약으로 테이블 생성
CREATE TABLE clients (
id INT NOT NULL,
name TEXT NOT NULL,
email TEXT,
signup_date TEXT
);

이렇게 하면 idname은 항상 제공되어야 합니다.

NULL을 올바르게 다루면 데이터 무결성을 유지하고, 필터링과 리포팅의 정확도를 높이며, 쿼리에서의 예기치 않은 결과를 줄일 수 있습니다.

다음 내용이 궁금하다면?

코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!