WeniVooks

검색

SQL 베이스캠프

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을 사용해야 합니다.

2.10 LIKE2.12 WHERE