본문 바로가기

sqld

1-9) Null 속성의 이해

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