Lee's Grow up

[오라클/ORACLE] NULL ( 널 ) 의 개념 / 널이란 ? NULL 이란 본문

DB/ORACLE

[오라클/ORACLE] NULL ( 널 ) 의 개념 / 널이란 ? NULL 이란

효기로그 2019. 9. 6. 14:05
반응형

1. 오라클에서 NULL 이란


오라클에서 NULL값은 할당될 수 없는, 적용할 수 없는, 할용할 수 없는, 알 수 없는 값을 의미하며 이는 0이나 공백을 의미하는 것과 다르다.

2. NULL과의 연산


  • 산술연산 : NULL 과 산술연산 (+, -, *, / ) 의 결과는 NULL을 반환
1
2
3
4
5
SELECT 1 + NULL AS SUM,
       1 - NULL AS SUB,
       1 * NULL AS MUL,
       1 / NULL AS DIV
FROM DUAL;

쿼리 실행 결과

SUM SUB MUL DIV
NULL NULL NULL NULL

 


  • 논리연산 : NULL과 논리연산 ( =, <, > , <=, >= ,!= 등등 ) 은 NULL은 제외하고 연산 NULL 허용 컬럼의 데이터는 세가지로 구분
  1. 해당하는 값인지 ( = ) 
  2. 해당하지 않는 값인지 ( <> ) 
  3. NULL 인지

 

위 3가지를 비교한다. NULL일 경우 = 이나 != 이 아닌 IS NULL, IS NOT NULL 로비교

 


일반함수와 집계 함수

 

일반함수

  • TO_CHAR, LENGTH 등 일반 함수에 NULL을 인수로 제공하면 RETURN 결과는 NULL
  • 단, NVL 함수 등 NULL 처리 관련 함수나, REPLACE, CONCAT등 문자열 처리 관련 함수에서는 예외 존재

 

집계함수

  • SUM(), AVG(), MIN(), MAX() 등은 NULL은 제외하고 연산한다 BUT COUNT(*)는 예외 

 

기타 

  • CASE문에서는 IS NULL로 비교하는거 외 NULL은 ELSE 절에 포함되서 처리

 

1
2
3
4
5
6
7
8
9
10
11
12
SELECT CASE NUM WHEN 1 THEN
                'TRUE'
            WHEN 2 THEN
                 'TRUE'
            END
FROM (  
  SELECT 1 AS NUM FROM  DUAL
  UNION ALL
  SELECT 2 FROM DUAL
  UNION ALL
  SELECT 99 FROM DUAL
);

쿼리 실행 결과

  NUM
1 TRUE
2 TRUE
3 NULL

 

반응형
Comments