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

MySQL에서 열이 NULL인 행 선택하는 방법

MySQL에서 NULL 값 조회하기

MySQL에서 특정 열의 값이 NULL인 행을 선택하려면 WHERE 절과 함께 IS NULL 연산자를 사용해야 합니다. 주의할 점은 = NULL이 아닌 반드시 IS NULL을 사용해야 한다는 것입니다. NULL은 '값이 없음'을 의미하는 특수한 상태이기 때문에 일반적인 비교 연산자로는 비교할 수 없습니다.

기본 문법

NULL 값을 가진 행을 조회하는 기본 문법은 다음과 같습니다.

SELECT * FROM yourTableName WHERE yourColumnName IS NULL;

예제로 이해하기

먼저 개념을 이해하기 위해 간단한 테이블을 생성해 보겠습니다.

mysql> create table NULLDemo1
   -> (
   -> StudentId int,
   -> StudentName varchar(100)
   -> );
Query OK, 0 rows affected (1.48 sec)

다음으로 테이블에 레코드를 삽입합니다. 일부 학생의 ID는 의도적으로 NULL로 입력했습니다.

mysql> insert into NULLDemo1 values(NULL,'John');
Query OK, 1 row affected (0.25 sec)
mysql> insert into NULLDemo1 values(100,'Johnson');
Query OK, 1 row affected (0.38 sec)
mysql> insert into NULLDemo1 values(NULL,'Carol');
Query OK, 1 row affected (0.25 sec)
mysql> insert into NULLDemo1 values(101,'Sam');
Query OK, 1 row affected (0.25 sec)

SELECT 문을 사용하여 테이블의 모든 레코드를 확인해 보겠습니다.

mysql> select *from NULLDemo1;

실행 결과는 다음과 같습니다. John과 Carol의 StudentId가 NULL로 저장된 것을 볼 수 있습니다.

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| NULL      | John        |
| 100       | Johnson     |
| NULL      | Carol       |
| 101       | Sam         |
+-----------+-------------+
4 rows in set (0.00 sec)

IS NULL 조건 적용하기

이제 앞서 소개한 문법을 실제 테이블에 적용하여 StudentId가 NULL인 행만 선택해 보겠습니다.

mysql> select *from NULLDemo1 where StudentId IS NULL;

실행 결과, StudentId가 NULL인 두 개의 행만 정상적으로 조회되었습니다.

+-----------+-------------+
| StudentId | StudentName |
+-----------+-------------+
| NULL      | John        |
| NULL      | Carol       |
+-----------+-------------+
2 rows in set (0.00 sec)

참고 사항

반대로 NULL이 아닌 행을 조회하고 싶다면 IS NOT NULL을 사용하면 됩니다. 또한 NULL 값은 집계 함수나 조인 시 예상치 못한 결과를 초래할 수 있으므로, 데이터 조회 시 NULL 처리 로직을 항상 염두에 두는 것이 좋습니다.