목차
2. 정규화
2-4. NULL 속성의 이해
2-4-1. NULL이란'/
2-1-2. NULL 과의 연산
2-1-3. 단일행 연산
2-1-4. 다중행 연산
2. 정규화
2-4. NULL 속성의 이해
1️⃣ NULL 이란?
NULL은 정의되지 않은 값을 의미한다.
즉, 값이 0 이라는 뜻이 아니라 아직 값이 없거나 알 수 없는 상태를 의미한다.
따라서 SQL에서 NULL을 계산할 때는 일반적인 숫자 계산과 다르게 처리된다.
2️⃣ NULL 과의 연산
NULL 과의 연산은 크게 두 가지로 나누어 볼 수 있다.
| 구분 | NULL 처리 방식 |
| 단일행 연산 | NULL이 포함되면 결과는 NULL |
| 다중행 연산 | NULL인 행은 제외하고 연산 |
3️⃣ 단일행 연산
단일행 연산은 한 행 안에서 컬럼끼리 계산하는 연산이다.
이 때 계산식에 NULL이 하나라도 포함되면 결과는 NULL이 된다.
➜ 100 + NULL = NULL
NULL은 알 수 없는 값이기 때문에 어떤 숫자와 더하더라도 결과를 알 수 없다.
📌 단일행 연산 핵심
- 같은 행 안에서 컬럼끼리 계산한다.
- NULL이 포함되면 결과는 NULL이다.
- NULL은 0이 아니기 때문에 숫자처럼 계산할 수 없다.
4️⃣ 다중행 연산
다중행 연산은 여러 행을 대상으로 집계하는 연산이다.
대표적으로 SUM, AVG, COUNT, MAX, MIN 같은 집계 함수가 있다.
다중행 연산에서는 NULL 값을 제외하고 계산한다.
➜ 10, 20, 30, NULL 의 평균은 (10 + 20 + 30) / 3 = 20
즉, NULL을 0으로 계산하는 것이 아니라 아예 계산 대상에서 제외한다.
📌 단일행 연산 핵심
- 여러 행을 대상으로 계산한다.
- NULL 값은 제외하고 연산한다.
- NULL을 0으로 바꾸어 계산하는 것이 아니다.
📝 예제로 이해하기

🔹 SELECT SUM(COL1 + COL2 + COL3 + COL4) FROM TBL;
이 SQL은 먼저 각 행 안에서 컬럼끼리 더한다.
즉, COL1 + COL2 + COL3 + COL4 부분은 단일행 연산이다.
| 행 | 계산식 | 결과 |
| 1행 | 10 + 10 + 10 + 20 | 50 |
| 2행 | 20 + 20+ NULL + 30 | NULL |
| 3행 | 30 + NULL + NULL + 10 | NULL |
| 4행 | NULL + 30 + 1-+ 40 | NULL |
단일행 연산에서는 NULL이 포함되면 결과가 NULL이 된다.
그 다음에 SUM() 함수가 각 행의 결과를 합산한다.
따라서 최종 결과는 다음과 같다.
➜ 50
🔹 SELECT SUM(COL1) + SUM(COL2) + SUM(COL3) + SUM(COL4)
이번에는 각 컬럼별로 먼저 SUM()을 수행한다.
SUM()은 다중행 연산이므로 NULL 값을 제외하고 계산한다.
| 컬럼 | 계산식 | 결과 |
| COL1 | 10 + 20 + 30 | 60 |
| COL2 | 10 + 20 + 30 | 60 |
| COL3 | 10 + 10 | 20 |
| COL4 | 20 + 30 + 10 + 40 | 100 |
각 컬럼의 합계를 더한 최종 결과는 다음과 같다.
➜ 240
🔗 출처
'자격증 > SQLD' 카테고리의 다른 글
| [SQLD][아이리포]10. 관계형 데이터베이스 (0) | 2026.07.06 |
|---|---|
| [SQLD][아이리포]09. 정규화 | 본질식별자 | 인조식별자 (0) | 2026.07.05 |
| [SQLD][아이리포]07. 정규화 | 조인 | 슈퍼타입, 서프타입 관계 테이블 병합 (0) | 2026.06.30 |
| [SQLD][아이리포]06. 정규화 | 정규화 절차 | 정규형 | BCNF (0) | 2026.06.28 |
| [SQLD][아이리포]05. 식별자 | 식별자 관계 | 비식별자 관계 (0) | 2026.06.27 |