[정리노트] SQLD 2024년 개정판 - NULL 속성의 이해
NULL의 개념
- DBMS에서 아직 정해지지 않은 값을 의미
- 0과 빈문자열 (' ')과는 다른 개념
- 모델 설계 시 각 컬럼별로 NULL을 허용할지를 결정 (Nullable Column)
NULL의 특징
- NULL을 포함한 연산 결과는 항상 NULL
- 컬럼에 공백으로 보이는 것들이 NULL이다. (빈문자열일 수 있음)
- 이때 NULL을 포함한 연산괄과는 NULL을 리턴한다
- NULL을 사전에 치환한 후 연산하면 됨 ex) SELECT ENAME, COMM, SAL + NVL(COMM, 0)
- 집계함수는 NULL을 제외한 연산 결과 리턴
- sum, avg, min, max 등의 함수는 항상 NULL을 무시한다
- 예시 1) COUNT (*) = 14, COUNT (SAL) = 14, COUNT (COMM) = 4
- COUNT는 행의 수를 리턴하는 함수, COUNT에 * 전달 시 모든 컬럼을 체크하여 NULL인 경우 COUNT에서 제외 (ENAME과 SAL은 NULL이 아니기에 카운트함)
- COMM의 경우 NULL이 다수 포함되어 있는다, COUNT 시 NULL을 제외 즉 NOT NULL인 행만 세어 리턴
- 예시 2) SUM(COMM) = 2200, MIN(COMM) = 0, MAX(COMM) = 1400
- SUM, MIN< MAX 연산 결과도 모드 NULL을 무시하여 연산
- 예시 3) NULL을 포함한 컬럼 평균 연산, AVG(COMM) = 550, SUM(COMM)/COUNT(*) = 157.1428
- AVG 연산 결과는 NULL을 무시한 평균을 리턴, AVG(COMM)은 NULL이 아닌 10개의 데이터의 평균을 리턴한 것이고, SUM(COMM)/COUNT(*)은 평균을 직접 구한 것이니 14개 데이터의 평균을 나눈 값이다. 이에 다른 결과가 리턴된다.
- 예시 1) COUNT (*) = 14, COUNT (SAL) = 14, COUNT (COMM) = 4
- sum, avg, min, max 등의 함수는 항상 NULL을 무시한다
NULL의 ERD 표기법
IE 표기법
- IE 표기법에서는 NULL 허용여부를 알 수 없음
바커 표기법
- 속성 앞에 동그라미가 NULL 허용 속성을 의미함
반응형
'스터디 > SQL' 카테고리의 다른 글
[기출문제] 1과목 - 데이터 모델링의 이해 (2024 개정판, 해설 포함) (3) | 2024.08.19 |
---|---|
[정리노트] SQLD 2024년 개정판 - 본질 식별자 vs 인조 식별자 (39) | 2024.08.19 |
[정리노트] SQLD 2024년 개정판 - 트랜잭션의 이해 (61) | 2024.08.14 |
[정리노트] SQLD 2024년 개정판 - 관계와 조인의 이해 (57) | 2024.08.13 |
[정리노트] SQLD 2024년 개정판 - 정규화 (67) | 2024.08.07 |