본문 바로가기

DB

[SQLD] NULL이란 무엇인가?

반응형

NULL

1. NULL : '데이터 없음, 값이 없음, 부재, 모르는 값'을 뜻한다. 

2. 행의 컬럼에 값이 없는 경우를 NULL이라고 하거나 NULL을 가진다고 한다. 

3. 예시 

SELECT SAL, COMM, SAL+COMM
FROM EMP;

NULL
NULL

NULL의 연산

1. NULL은 연산이 불가능하다. (+, -, *, /) 

 

NULL과의 비교 연산

1. 비교연산은 IS NULL / IS NOT NULL - 이것만 가능하다. 

2. 예시 

SELECT EMPNO, COMM 
FROM EMP
WHERE COMM IS NOT NULL;

COMM IS NOT NULL

NULL과 관련된 함수

1. NVL(<값1>, <값2>) - 값1이 NULL이면 값2로 변경하는 함수 

2. NVL2 (<값1>,<값2>,<값3>) - 값1이 NULL이면 값3으로 변경하고 아니면 값2로 변경하는 함수 

3. NULLIF(<값1>,<값2>) - 값1 = 값2면 NULL을 반환하고 아니면 값1 반환 

4. COALESCE(<값1>,<값2>...) - 값 중에서 NULL이 아닌 첫번째 값을 반환 

5. 예제 - NULL값을 0으로 취급하기 

SELECT SAL, NVL(COMM,0),SAL+NVL(COMM,0)
FROM EMP;

6. 직속상관이 없는 사원의 MGR 값만 0으로 반환하고 나머지 사원의 MGR 값은 1로 반환하라. 

- MGR이 NULL이면 0 아닌 경우는 1 , NVL2 함수 사용하기 

SELECT ENAME, MGR, NVL2(MGR, 1, 0) 
FROM EMP;

MGR
KING은 상관이 없어.

 

반응형