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
'Database > 기초' 카테고리의 다른 글
MYSQL, MariaDB 한글 검색 안될때 케릭터셋 설정방법, 변경방법 (0) | 2017.02.20 |
---|---|
Oracle 오라클 설치 후 TNS, 리스너 설정 및 SQL Gate 활용 접속확인 (0) | 2014.02.06 |
Oracl 오라클 설치방법 (0) | 2014.02.06 |
댓글