AI·데이터 자격증/SQLD

[SQLD 이론 48] NULL 함정 총정리, 연산·비교·집계·NOT IN·조인·정렬 속 NULL 한 번에 정리 (+기출변형문제)

랜덤워크z 2026. 10. 23. 15:08

SQLD 이론 48 NULL 함정 총정리

SQLD NULL 함정 총정리, NULL 산술·비교·3값 논리, 집계 함수와 COUNT, NOT IN·IN, OUTER JOIN, 정렬, 문자 연결, GROUP BY·UNIQUE·CHECK 속 NULL 핵심 정리

이제 마무리 총정리! 첫 번째는 SQLD에서 가장 많이 틀리는 NULL 함정이야

흩어져 있던 NULL 규칙을 한 페이지로 모아서 마지막 점검해보자

 

SQLD 기초이론 정리 시리즈 48탄!!!

과목 : 마무리 총정리

세부 영역 : NULL 함정 총정리 (이론 18 · 19 · 21 · 27 · 30 복습)

 

▶ [이론 47] DCL 보러가기

 

1. 오늘 사용할 예시 테이블

 

ID 값
1 10
2 NULL
3 30
4 NULL

▲ T_NULL

 

2. 연산 · 비교 속 NULL

상황 결과 복습
NULL + 10, NULL * 0 NULL 이론 18
값 = NULL, 값 <> NULL UNKNOWN → WHERE에서 제외 이론 18
값 IS NULL ID 2, 4 이론 18
FALSE AND UNKNOWN / TRUE OR UNKNOWN FALSE / TRUE 이론 18
Oracle 'SQL' || NULL || 'D' SQLD (NULL은 빈 문자처럼) 이론 16
Oracle 빈 문자열 '' NULL로 취급 이론 18

 

3. 집계 속 NULL

SQL 결과 복습
COUNT(*) 4 이론 21
COUNT(값) 2 이론 21
SUM(값) / AVG(값) 40 / 20 (NULL 제외) 이론 21
AVG(NVL(값, 0)) 10 (40 ÷ 4) 이론 21
GROUP BY 값 10 · 30 · NULL → 3그룹 이론 22
조건에 맞는 행이 없을 때 SUM NULL 1행 이론 21

 

4. 서브쿼리 · 조인 · 정렬 속 NULL

상황 결과 복습
값 IN (10, NULL) ID 1 (NULL은 영향 없음) 이론 30
값 NOT IN (10, NULL) 0행 (전부 UNKNOWN) 이론 28 · 30
NOT EXISTS NULL 영향 없음 이론 30
LEFT JOIN 후 짝 없는 쪽 NULL로 채워짐 이론 26
LEFT JOIN 후 WHERE 오른쪽 조건 NULL 행 제거 → INNER처럼 이론 27
Oracle ORDER BY 값 ASC NULL이 맨 뒤 (가장 큰 값) 이론 23
SQL Server ORDER BY 값 ASC NULL이 맨 앞 이론 23

 

5. 함수 · 제약조건 속 NULL

상황 결과 복습
NVL(NULL, 0) / NVL2(NULL, 'Y', 'N') 0 / N 이론 19
NULLIF(5, 5) / COALESCE(NULL, 7) NULL / 7 이론 19
CASE 값 WHEN NULL THEN … 절대 매칭 안 됨 → IS NULL로 이론 19
UNION 중복 제거 NULL끼리는 같은 값으로 봄 이론 32
UNIQUE 칼럼 NULL 여러 개 허용 이론 46
CHECK (값 > 0) NULL은 통과 이론 46

 

[ 최근 기출 출제 포인트 ]

 

회차 NULL 관련 출제 포인트
60회 NULL 비교 조건 건수, COUNT(*) vs COUNT(칼럼), NOT IN
61회 NULL 산술, NVL · COALESCE, OUTER JOIN 후 NULL
62회 NOT IN + NULL, 공집합 집계, NULL 정렬 위치

 

[ 자주 묻는 질문 ]

Q. NULL끼리 같다고 보는 곳과 다르다고 보는 곳이 헷갈려

A. 비교 연산(=)에서는 UNKNOWN, 하지만 GROUP BY · DISTINCT · UNION 같은 "묶기 · 중복 제거"에서는 같은 값으로 봐

 

Q. 시험장에서 NULL 문제 푸는 순서는?

A. ① NULL이 있는 행에 표시 → ② 그 행이 조건에서 UNKNOWN인지 확인 → ③ 집계면 NULL 빼고 계산, 이 순서로 보면 실수가 줄어

 

[ 시험 포인트 정리 ]

 

키워드 핵심
산술 NULL
비교 UNKNOWN → 제외
집계 COUNT(*)만 NULL 셈
NOT IN NULL 있으면 0행
묶기 · 중복 제거 NULL끼리 같은 값
Oracle 정렬 NULL이 가장 큼

 

[ 기출변형문제 ]

※ 60~62회 출제 포인트와 출제기준을 바탕으로 새로 만든 변형문제야

(위의 T_NULL 테이블, Oracle 기준)

 

Q1. SELECT COUNT(*), COUNT(값), SUM(값), AVG(값) FROM T_NULL; 의 결과는?

① 4, 2, 40, 20

② 4, 4, 40, 10

③ 2, 2, 40, 20

④ 4, 2, 40, 10

 

Q2. SELECT 'SQL' || NULL || 'D' FROM DUAL; 의 결과는?

① NULL

② SQLD

③ SQL

④ 오류 발생

 

Q3. SELECT COUNT(*) FROM T_NULL WHERE 값 NOT IN (10, NULL); 의 결과는?

① 2

② 1

③ 0

④ 4

 

Q4. SELECT COUNT(*) FROM T_NULL WHERE 값 IN (10, NULL); 의 결과는?

① 2

② 0

③ 4

④ 1

 

Q5. SELECT CASE 값 WHEN NULL THEN '없음' ELSE '있음' END FROM T_NULL WHERE ID = 2; 의 결과는?

① 있음

② 없음

③ NULL

④ 오류 발생

 


[ 정답 & 해설 ]

 

문항 정답 및 해설
Q1 ① 전체 4행, NULL 아닌 값 2개, 합 40, 평균 40 ÷ 2 = 20
Q2 ② Oracle 문자 연결에서 NULL은 빈 문자처럼 처리 → SQLD
Q3 ③ 값 <> NULL이 항상 UNKNOWN이라 0
Q4 ④ IN은 OR라서 값 = 10인 ID 1만 TRUE → 1
Q5 ① WHEN NULL은 = 비교라 매칭되지 않아 ELSE '있음'

 

다음 글에서는 SQL 결과를 빠르게 추론하는

[이론 49] SQL 결과 추론 요령 총정리

▶ [이론 49] SQL 결과 추론 요령 총정리 보러가기

로 2과목 함정을 한 번에 모아볼게!

 

▶ SQLD 기초이론 전체 글 보러가기

▶ SQLD · AI 자격증 스터디 자료 보러가기 (AI DATA 자격증 스터디 클럽)

 

SQLD 준비하시는 분들 모두 화이팅입니다~~~~~ ^^

반응형