Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 NULL 값 데이터 조회하기 – IS NULL 조건 쿼리 사용법

데이터베이스 작업을 하다 보면 특정 컬럼의 값이 NULL인 레코드만 골라서 조회해야 하는 경우가 자주 발생합니다. 이 글에서는 MySQL에서 IS NULL 조건을 활용해 NULL 값을 가진 데이터를 가져오는 방법을 예제와 함께 단계별로 살펴보겠습니다.

1. 샘플 테이블 생성

먼저 실습에 사용할 테이블을 생성합니다. 고객 이름과 국가 이름 두 개의 컬럼으로 구성된 간단한 테이블입니다.

mysql> create table DemoTable
(
    CustomerName varchar(100),
    CustomerCountryName varchar(100)
);
Query OK, 0 rows affected (0.95 sec)

2. 테이블에 데이터 삽입

다음으로 INSERT 명령어를 사용해 여러 개의 레코드를 추가합니다. 이때 Carol과 Mike의 국가 이름은 의도적으로 NULL로 입력했습니다.

mysql> insert into DemoTable values('Chris','US');
Query OK, 1 row affected (0.18 sec)
mysql> insert into DemoTable values('Bob','UK');
Query OK, 1 row affected (0.10 sec)
mysql> insert into DemoTable values('Carol',NULL);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable values('David','AUS');
Query OK, 1 row affected (0.32 sec)
mysql> insert into DemoTable values('Mike',NULL);
Query OK, 1 row affected (0.18 sec)

3. 전체 레코드 확인

SELECT 문으로 테이블의 모든 레코드를 조회해 보겠습니다.

mysql> select *from DemoTable;

실행 결과는 다음과 같습니다.

+--------------+---------------------+
| CustomerName | CustomerCountryName |
+--------------+---------------------+
| Chris        | US                  |
| Bob          | UK                  |
| Carol        | NULL                |
| David        | AUS                 |
| Mike         | NULL                |
+--------------+---------------------+
5 rows in set (0.00 sec)

4. IS NULL로 NULL 값 데이터 조회하기

NULL 값을 가진 레코드를 조회할 때는 = NULL이 아닌 IS NULL을 사용해야 합니다. NULL은 '값이 없는 상태'를 나타내기 때문에 일반적인 비교 연산자로는 비교할 수 없기 때문입니다.

mysql> select *from DemoTable where CustomerCountryName IS NULL;

실행 결과, 국가 이름이 NULL인 레코드만 출력됩니다.

+--------------+---------------------+
| CustomerName | CustomerCountryName |
+--------------+---------------------+
| Carol        | NULL                |
| Mike         | NULL                |
+--------------+---------------------+
2 rows in set (0.00 sec)

핵심 정리

  • NULL 값은 비교 연산자(=, !=)로 비교할 수 없으며, 반드시 IS NULL 또는 IS NOT NULL을 사용해야 합니다.
  • WHERE 컬럼명 IS NULL 조건을 사용하면 해당 컬럼이 NULL인 레코드만 필터링할 수 있습니다.
  • 반대로 NULL이 아닌 데이터만 조회하고 싶다면 IS NOT NULL을 사용하면 됩니다.

이처럼 IS NULL 조건만 기억하면 MySQL에서 NULL 값을 가진 데이터를 손쉽게 조회할 수 있습니다. 실무에서 결측 데이터를 점검하거나 클렌징 작업을 할 때 매우 유용하게 활용되니 꼭 익혀두세요.