본문 바로가기

자격증/SQLD

[SQLD][아이리포]08. 정규화 | NULL과의 연산 | 단일행 | 다중행

반응형
목차

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 모든 것]

 

반응형