Database

[MySQL] NULL 처리 (IS NULL, IFNULL, COALESCE)

비번변경 2022. 6. 16. 16:37

NULL

값이 없는 데이터인 경우 NULL로 채워진다. NULL은 결측치(Missing Value)이므로 데이터 조회, 처리 시 NULL이 없는 데이터만 조회하거나 NULL이 아닌 다른 값으로 치환하는 경우가 발생한다.

💡 결측치
Missing Value. 데이터에 값이 없는 것을 뜻한다.
줄여서 NA 또는 Null로 표현된다.

 

이 글에서는 NULL을 처리하는 몇 가지 방법을 정리한다.

 

IS NULL / IS NOT NULL

=, <>와 같은 비교 연산자로는 NULL을 조회할 수 없다. 따라서 NULL을 조회할 때에는 IS NULL, IS NOT NULL연산자를 사용해야 한다.

IS NULL은 NULL인 데이터를, IS NOT NULL은 NULL이 아닌 테이터를 조회한다.

 

IS NULL

SELECT column_names
FROM table_name
WHERE column_name IS NULL;

# 예시
SELECT ANIMAL_ID, NAME
FROM ANIMAL_INS
WHERE 1=1
    AND NAME IS NULL;

IS NULL

IS NOT NULL

SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;]

# 예시
SELECT ANIMAL_ID
FROM ANIMAL_INS 
WHERE 1=1
    AND NAME IS NOT NULL;

IS NOT NULL

 

 

IFNULL()

데이터가 NULL인 데이터를 다른 값으로 출력한다.

IFNULL(expression, alt_value)

# 예시
SELECT IFNULL(NULL, "대체 텍스트");

IFNULL()

 

COALESCE()

목록에서 NULL이 아닌 첫 번째 값을 반환한다.

COALESCE(val1, val2, ...., val_n)

# 예시
SELECT COALESCE(NULL, NULL, NULL, 'tistory', NULL, 'passwd');

COALESCE()

 

 

참고 문서

https://www.w3schools.com/mysql/mysql_null_values.asp

https://www.w3schools.com/mysql/func_mysql_ifnull.asp

https://www.w3schools.com/sql/func_mysql_coalesce.asp