IS NULL
IS NULL
연산자는 값이 NULL
인 데이터를 조회할 때 사용됩니다. NULL
은 값이 없음을 의미하며, 단순히 빈 값이나 0이 아닌, 아예 값이 존재하지 않는 상태를 나타냅니다. =
연산자로는 NULL
을 비교할 수 없기 때문에, IS NULL
연산자를 사용해야 합니다.
1.1 IS NULL 사용 예시
다음 쿼리는 상품의 설명이 없는(NULL
값인) 상품을 조회하는 예시입니다. 다만 해당 데이터에는 설명이 비어있는 값이 없습니다.
SELECT 상품명, 설명
FROM 상품
WHERE 설명 IS NULL;
SELECT 상품명, 설명
FROM 상품
WHERE 설명 IS NULL;
아래 코드를 실행시키면 설명이 비어있는 상품을 생성할 수 있습니다.
현재는 INSERT 구문 실행시 값이 2개씩 들어가는 오류가 있습니다. 이 점 참고해주세요.
INSERT INTO 상품 (상품ID, 상품명, 카테고리ID, 가격, 재고, 설명, 공급업체ID)
VALUES (31, '테스트 상품', 9, 100000, 10, NULL, 101);
INSERT INTO 상품 (상품ID, 상품명, 카테고리ID, 가격, 재고, 설명, 공급업체ID)
VALUES (31, '테스트 상품', 9, 100000, 10, NULL, 101);
아래 코드를 실행시키고 다시 위의 쿼리를 실행시키면 설명이 비어있는 상품을 조회할 수 있습니다.
1.2 IS NOT NULL 사용 예시
반대로, 값이 NULL
이 아닌 데이터를 조회하고 싶을 때는 IS NOT NULL
을 사용할 수 있습니다. 다음 쿼리는 설명이 있는 상품을 조회하는 예시입니다.
SELECT 상품명, 설명
FROM 상품
WHERE 설명 IS NOT NULL;
SELECT 상품명, 설명
FROM 상품
WHERE 설명 IS NOT NULL;
이 쿼리는 설명이 존재하는 상품들만 조회합니다.
1.3 NULL 처리 시 주의사항
NULL
은 값이 존재하지 않는 상태를 나타내므로, 수치 계산이나 문자열 비교 연산에서 예상치 못한 결과를 초래할 수 있습니다. 예를 들어, NULL
과의 비교는 항상 FALSE
를 반환합니다.
다음 쿼리는 NULL
과의 직접 비교가 작동하지 않는 예시입니다.
SELECT 상품명
FROM 상품
WHERE 설명 = NULL; -- 잘못된 쿼리
-- WHERE 설명 != NULL; -- 잘못된 쿼리
SELECT 상품명
FROM 상품
WHERE 설명 = NULL; -- 잘못된 쿼리
-- WHERE 설명 != NULL; -- 잘못된 쿼리
이 쿼리는 아무런 결과도 반환하지 않습니다. NULL
을 비교할 때는 반드시 IS NULL
또는 IS NOT NULL
을 사용해야 합니다.