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

MySQL에서 인수 중 하나가 NULL일 때 산술 연산의 결과는 어떻게 될까?

MySQL에서 NULL과의 산술 연산 결과

MySQL에서는 산술 연산의 인수 중 하나라도 NULL이면 결과가 항상 NULL로 반환됩니다. 이는 NULL이 '알 수 없는 값(unknown)'을 의미하기 때문입니다. 알 수 없는 값과의 어떤 연산도 그 결과를 확정할 수 없으므로, MySQL은 해당 연산의 결과를 NULL로 처리합니다.

사칙연산 예제

다음 예제는 덧셈, 뺄셈, 곱셈, 나눗셈 각각에 NULL이 인수로 포함된 경우의 실행 결과를 보여줍니다.

mysql> Select 10*NULL;
+---------+
| 10*NULL |
+---------+
|    NULL |
+---------+
1 row in set (0.12 sec)

mysql> Select 10+NULL;
+---------+
| 10+NULL |
+---------+
|    NULL |
+---------+
1 row in set (0.00 sec)

mysql> Select 10-NULL;
+---------+
| 10-NULL |
+---------+
|    NULL |
+---------+
1 row in set (0.07 sec)

mysql> Select 10/NULL;
+---------+
| 10/NULL |
+---------+
|    NULL |
+---------+
1 row in set (0.00 sec)

위 네 가지 산술 연산 모두 결과가 NULL로 출력되었습니다. 그 이유는 각 연산식의 인수 중 하나가 NULL이기 때문입니다.

NULL 처리 방법: IFNULL() 활용

실무에서는 IFNULL() 또는 COALESCE() 함수를 사용해 NULL을 기본값으로 대체한 후 연산을 수행하면 원하는 숫자 결과를 얻을 수 있습니다.

mysql> Select 10 + IFNULL(NULL, 0);
+----------------------+
| 10 + IFNULL(NULL, 0) |
+----------------------+
|                   10 |
+----------------------+
1 row in set (0.00 sec)

이처럼 NULL 값을 0으로 치환하면 산술 연산이 정상적으로 수행됩니다. 데이터 분석이나 집계 쿼리 작성 시 NULL로 인한 의도치 않은 결과를 방지하려면 항상 NULL 여부를 먼저 점검하는 습관이 중요합니다.