SQLD

SQLD 개념정리 (NULL, NULL 관련 함수)

chojdsj 2023. 11. 6. 00:56
728x90

 

NULL

 

 

- NULL 값아직 정의되지 않은 값으로 0 또는 공백과 다르다. 0은 숫자이고 공백은 하나의 문자이다.

 

- 테이블을 생성할 때, NOT NULL 또는 PRIMARY KEY로 정의되지 않은 모든 데이터 유형은 NULL 값을 포함할 수 있다.

 

- NULL 값을 포함하는 연산의 경우 결과 값도 NULL 값이다. 모르는 데이터에 숫자를 더하거나 빼도 결과는 마찬가지로 모르는 데이터인 것과 같다.

ex) 10 + NULL = NULL;

 

- 결과값을 NULL이 아닌 다른 값을 얻고자 할때 NVL(Oracle) / ISNULL(MSSQL) 함수를 사용한다. NULL 값의 대상이 숫자 유형 데이터인 경우는 주로 0으로, 문자 유형 데이터인 경우는 블랭크보다는 'X'같이 해당 시스템에서 의미 없는 문자로 바꾸는 경우가 많다. 

 

 

 

일반형 함수 함수 설명
NVL(표현식1, 표현식2) /
ISNULL(표현식1, 표현식2)
표현식1의 결과값이 NULL이면 표현식2의 값을 출력한다. 단, 표현식1과 표현식2의 결과 데이터 타입이 같아야 한다. NULL 관련 가장 많이 사용되는 함수이므로 상당히 중요하다.
NULLIF(표현식1, 표현식2) 표현식1이 표현식2와 같으면 NULL을, 같지 않으면 표현식1을 리턴한다.
COALESCE(표현식1, 표현식2, .......) 임의의 개수 표현식에서 NULL이 아닌 최초의 표현식을 나타낸다. 모든 표현식이 NULL이라면 NULL을 리턴한다.

 

 

 

 

 

 

 

COALESCE

 

 

- 첫 번째 NULL이 아닌 값을 반환 ( = NULL이 아닌 최초의 표현식을 리턴)

 

 

 

 

* 공집합 *


조건에 맞는 데이터가 한 건도 없는 경우를 공집합이라 함


- SELECT 1 FROM DUAL WHERE 1 = 2; 와 같은 조건이 대표적인 공집합을 발생시키는 쿼리


인수값이 공집합인 경우NVL( )/ISNULL( ) 사용해도 공집합이 출력