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을 출력하게 된다.