NULL
- DBMS에서 아직 정해지지 않은 값을 의미
- 0과 빈문자열('')과는 다른 개념
- 모델 설계 시 각 컬럼별로 NULL을 허용할지를 결정 (Nullable Column)
NULL의 특성
1. NULL을 포함한 연산 결과는 항상 NULL
- NULL을 포함한 COMM과 SAL 과의 연산결과는 항상 NULL이 리턴됨
- 0으로 처리해서 연산하고 싶다면 사전에 NULL을 치환하여 연산
- NVL(COMM, 0) : NULL인 COMM에 대해 0으로 처리 후 연산
2. 집계함수는 NULL을 제외한 연산 결과 리턴
- SUM, AVG, MIN, MAX 등의 함수는 항상 NULL을 무시
예1)
- SAL에는 NULL인 행이 없지만 COMM에는 10개의 NULL 행이 존재한다는 것을 알 수 있음
예2)
- SUM, MIN, MAX 연산 결과도 모두 NULL을 무시하여 연산
예3) NULL을 포함한 컬럼 평균 연산
- AVG 연산 결과는 NULL을 무시한 평균을 리턴하므로, NULL이 아닌 데이터들의 평균을 리턴
- NULL을 0으로 처리 후 전체 컬럼 수에 대한 평균을 구하고 싶다면 SUM을 COUNT(*)으로 나눈 값 연산
- 두 연산 결과는 COMM이 NULL을 포함할 경우 항상 다르게 리턴됨
- NULL을 무시한 평균을 얻고자 함인지, 전체에 대한 평균을 계산하고자 함인지에 따라 적절히 선택하여 사용!
NULL의 ERD 표기법
- IE 표기법에서는 NULL 허용 여부를 알 수 없음
- 바커 표기법에서는 속성 앞의 동그라미가 NULL 허용 속성을 의미함
- 동그라미가 있으면 NULL 허용
'sqld' 카테고리의 다른 글
2-1) 관계형 데이터베이스 개요 (0) | 2024.08.19 |
---|---|
1-10) 본질식별자 vs 인조식별자 (0) | 2024.08.19 |
1-8) 모델이 표현하는 트랜잭션의 이해 (0) | 2024.08.19 |
1-7) 관계와 조인의 이해 (0) | 2024.08.19 |
1-6) 정규화 (0) | 2024.08.18 |