본문 바로가기

SQL

[SQLD] NULL의 모든 것

SQLD 스터디를 하면서 조원분들이 도움이 된다고 했던 NULL 모음집을 공유하려고 한다.

SQLD 보시는 분들 화이팅! 나도 붙으면 좋겠다...ㅎ

 

여기저기서 참고한 것들이 많아서 그런것들은 링크로 남겨두겠다.

 

과목 2 - 1장 SQL 기본 - 제5절 WHERE절

NULL(ASCII 00) : 값이 존재하지 않는 것, 확정되지 않은 값

값(크기)의 비교가 불가! 아래 두 비교만 가능

  • IS NULL : NULL값이면 True, 아니면 False
  • IS NOT NULL : NULL값이 아니면 True, 맞으면 False

NULL값 과의 수치(산술)연산은 NULL

NULL값 과의 비교연산은 False

NULL과의 모든 사칙연산 결과는 NULL

💡 주의 : **‘공백’, ‘0(zero)’**는 크기 비교 가능하다, 값이 존재
  • 문법 : WHERE 칼럼명 IS NULL / IS NOT NULL

 

과목 2 - 1장 SQL 기본 - 제6절 함수

  • NULL관련 함수

1. NVL(Oracle)/ISNULL(SQL Server)

( __ = NULL 비교 기준이 되는 식)

NVL(표현식1, 표현식2) : Oracle → 표현식1이 NULL이면 표현식2를 출력

ISNULL(표현식1, 표현식2) : SQL Server → 표현식1이 NULL이면 표현식2를 출력

NVL2(표현식1, 표현식2(NOT NULL), 표현식3(NULL)) : Oracle(SQL Server는 해당하는 함수 없음)

 

2. NULLIF

NULLIF(표현식1, 표현식2) :

표현식1**=**표현식2 → return NULL

표현식1표현식2 → return 표현식1

 

3. COALESCE

COALESCE(표현식1, 표현식2,….) : NULL값이 나오지 않는 최초의 표현식 출력

ex. COALESCE(표현식1, 표현식2, 표현식3)

(NULL, NULL, NULL) → return NULL

(NULL, NULL, 값3) → return 값3

(값1, 값2, 값3) → return 값1

 

NULL의 COUNT, SUM

이 블로그 글에서 여러가지 경우의 수에 대한 연습이 가능합니다👍

 

오라클(Oracle) 집계함수와 공집합의 NULL 처리

샘플 테이블 데이터SCOTT의 EMP 테이블 데이터 이며 포스팅의 내용은 아래 테이블의 데이터를 통해서 진행 합니다.               EMPNOENAMEJOBMGRHIREDATESALCOMMDEPTNO7369SMITHCLERK79021980/12/17 00:00:00800

hoing.io

특히 공집합과 NULL의 차이에 대해서 봐주세요

 

  • 표로 정리
A B C ***SUM(A+B+C)
NULL NULL 1 NULL
3 2 2 7
NULL 2 3 NULL

SUM(A) = 3
SUM(B) = 4
***SUM(A)+SUM(B)+SUM(C) = 3 + 4 + 6 = 13
COUNT(A) = 1
COUNT(*) = 3****

 

참고영상

https://youtu.be/PC3ypt_VGWI?feature=shared&t=1152

 

과목 2 - 1장 SQL 기본 - 제8절 ORDER BY절

  • 정렬 상 의미

SQL Server -∞(최소의 값) → 정렬 시 가장 처음

Oracle ∞(무한대) → 정렬 시 가장 마지막

 

연습문제

아래의 데이터가 있을 때 SQL 이 수행된 결과로 옳은 것은?

[기출 30회차 – COALESCE함수]

 

 

[데이터] 

COL1 COL2
100 100
NULL 60
NULL NULL

[SQL] SELECT COALESCE(COL1, COL2 *50 , 50) FROM TAB1;

더보기

100 / 3000 / 50

행단위로 보기 때문에 처음에는 col1의 100, 두번째는 col2의 60, 세번째는 50을 출력하게 된다.