Database/기초

Null 처리 방법(oracle, mssql, mysql), 데이터베이스 NULL처리 방법

리커니 2014. 4. 16.
반응형

Null 처리 방법(oracle, mssql, mysql), 데이터베이스 NULL처리 방법


[Null 의 개념]

데이터 모델링에서의 Null 이란 알 수 없는 값(Unkown)을 의미한다.

기타 여러 프로그래밍 언어에서도 Null 이란 개념은 존재하지만

데이터베이스에서만큼 중요하진 않다.


예를 들어 미혼인 사람의 결혼기념일은 알수 없으므로(Unkown) Null에 해당된다.


그럼 Null이 발생하는 경우에 대해서 알아보자.


[Null 이 발생하는 경우]

1. Null 값이 허용된 컬럼에 값이 없을 경우.

2. Null 값과 산술연산을 할 경우. (1+Null = Null)

3. Left, Right 조인 시 매칭 값이 없을 경우.

4. 서브쿼리의 값이 없을 경우.

등이다.


이런 경우 Null 처리를 해주지 않는다면 결과값에 "Null" 이 나오므로 

업무 특성에 따라 Null 처리가 필요하다.


Null을 처리하는 방법에는 약 3가지가 존재한다.

 

 

 

[Null 처리 방법]

1. IS NULL , IS NOT NULL 연산자 사용.

2. NVL (ORACLE), ISNULL (MSSQL), IFNULL (MYSQL) 사용.

3. CASE 문 사용.


[Null 처리 방법 예]

1. IS NULL , IS NOT NULL 연산자 사용.


SELECT T.ID

           , T.NAME

           , T.JOIN_DAY

  FROM T

WHERE T.JOIN_DAY <> TO_DATE('20140416', 'YYYYMMDD')

    AND T.JOIN_DAY IS NULL


2. NVL (ORACLE), ISNULL (MSSQL), IFNULL (MYSQL) 사용.


SELECT T.ID

           , T.NAME

     , NVL(T.JOIN_DAY, '20140416')  -- ORACLE

     , ISNULL(T.JOIN_DAY, '20140416')  -- MSSQL

     , IFNULL(T.JOIN_DAY, '20140416')  -- MYSQL

     , COALESCE(T.JOIN_DAY, '20140416')  -- MYSQL

  FROM T

  

NVL

 

3. CASE 문 사용.


SELECT T.ID

           , T.NAME

     , CASE WHEN T.JOIN_DAY IS NULL THEN '20140416'

              ELSE T.JOIN_DAY END AS JOIN_DAY

  FROM T

 

반응형

댓글

💲 추천 글