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
제약은 컬럼에 누락된 값이 들어가는 것을 방지합니다.
예를 들어, 아래 쿼리는 id
와 name
컬럼에 NOT NULL
제약을 둔 테이블을 생성합니다.
NOT NULL 제약으로 테이블 생성
CREATE TABLE clients (
id INT NOT NULL,
name TEXT NOT NULL,
email TEXT,
signup_date TEXT
);
이렇게 하면 id
와 name
은 항상 제공되어야 합니다.
NULL
을 올바르게 다루면 데이터 무결성을 유지하고, 필터링과 리포팅의 정확도를 높이며, 쿼리에서의 예기치 않은 결과를 줄일 수 있습니다.
다음 내용이 궁금하다면?
코드프렌즈 PLUS 멤버십 가입 or 강의를 등록해 주세요!