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

MySQL에서 빈 행(NULL)에 기본값 설정하는 방법 – COALESCE() 함수 활용 가이드

MySQL에서 빈 값(NULL)이 있는 행에 기본값을 지정하려면 COALESCE() 함수를 활용하면 됩니다. COALESCE()는 인수로 전달된 값 중 첫 번째로 NULL이 아닌 값을 반환하는 함수로, 이를 이용하면 NULL 데이터를 원하는 기본값으로 대체하여 조회할 수 있습니다.

1. 테이블 생성

먼저 예제로 사용할 테이블을 생성합니다.

mysql> create table DemoTable1863
    (
    FirstName varchar(20)
    );
Query OK, 0 rows affected (0.00 sec)

2. 데이터 삽입

INSERT 명령어를 사용해 이름과 NULL 값을 번갈아 입력합니다.

mysql> insert into DemoTable1863 values('Chris');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1863 values(NULL);
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1863 values('David');
Query OK, 1 row affected (0.00 sec)
mysql> insert into DemoTable1863 values(NULL);
Query OK, 1 row affected (0.00 sec)

3. 전체 데이터 확인

SELECT 문으로 테이블의 모든 레코드를 조회합니다.

mysql> select * from DemoTable1863;

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

+-----------+
| FirstName |
+-----------+
| Chris     |
| NULL      |
| David     |
| NULL      |
+-----------+
4 rows in set (0.00 sec)

4. COALESCE()로 기본값 설정하기

다음은 NULL인 행에 'UNKNOWN NAME'이라는 기본값을 적용하는 쿼리입니다.

mysql> select coalesce(FirstName,'UNKNOWN NAME') from DemoTable1863;

결과를 보면 NULL 값이 모두 'UNKNOWN NAME'으로 대체되어 출력됩니다.

+------------------------------------+
| coalesce(FirstName,'UNKNOWN NAME') |
+------------------------------------+
| Chris                              |
| UNKNOWN NAME                       |
| David                              |
| UNKNOWN NAME                       |
+------------------------------------+
4 rows in set (0.00 sec)

COALESCE() 함수의 동작 원리

COALESCE(값1, 값2, ...) 형태로 사용하며, 왼쪽부터 차례대로 평가하여 처음 만나는 NULL이 아닌 값을 반환합니다. 따라서 FirstName이 NULL이면 두 번째 인수인 'UNKNOWN NAME'이 반환됩니다. IFNULL() 함수와 비슷한 역할을 하지만, COALESCE()는 세 개 이상의 인수도 처리할 수 있어 더욱 유연하게 활용할 수 있다는 장점이 있습니다.