1. Null 이란?
ㅇ 무(無)의, 공(空)의, 무효의, 비어있음, 특정 의미 없음 등을 의미
ㅇ 한편, `nulling`, `nullify` 등은,
- `효과, 효력, 명령, 합의 등을 무효로 만들다`,`비우다`라는 뜻을 갖음
2. [전산] 널 문자 (NUL 또는 '\0')
ㅇ 원래, 터미널 또는 프린터로 보내지는 NOP (No Operation, 무 동작) 명령어를 의미
ㅇ 이의 아스키코드(ASCII) 값은, 0 (비트 패턴이 모두 0 : '0000 0000', '0x00') (문자 : '\0')
ㅇ 의미
- 통상, 아무것도 없음을 값으로 표현한 것 (즉, 빈 값을 표현)
- 또는, 프로그램(함수 등)이,
. `자료 검색 후 해당 값을 못 찾았을 때`, `메모리 할당 실패 때` 등의 경우에,
. 이같은 사실을 알려주려고, 넘겨주는(반환) 값
ㅇ 유의점
- 취급 상 차이 : 널 문자(NUL)는, 공백 문자 ""(empty)," "(space, ASCII 32)와는 다르게 취급
- 비교 시 유의 : `==`과 같은 비교 연산 때, NULL을 공백 ""(empty)과 같은 것으로 간주하곤 함
ㅇ [C 언어]
- 널 문자('\0')를 문자열의 끝을 나타내는 특수 문자로 쓰임 ☞ C 문자열 참조
. 공백 문자,빈 문자열은, 오로지 널 문자('\0') 하나 만 갖음
- NULL에, 의미를 부여해주기 위해 매크로로 따로 define 함 (#define NULL 0)
3. [전산] NULL 포인터
ㅇ 아무것도 가르키지 않는 특별한 포인터 값
- 값을 가르키지 않는 null 포인터는, 일종의 쓰레기(가비지) 주소를 뜻하지만,
- 이는 디버깅 등 특별한 용도로 사용 가능한 포인터 값 임
ㅇ (부울값 판정)
- 만일, 포인터 값이 NULL 이면, 이를 부울값 False 로 판정함
4. [전산] 데이터베이스 상에서, NULL
ㅇ 컬럼에 데이터가 아예 들어있지도 않음을 나타내는 특별한 값
- 이는, 통상의 빈 문자열(Zero Length)이 아님
ㅇ 특징
- 비교 불가 : 통상의 연산자로는 비교 자체가 불가능 (심지어,다른 널 값과도 비교 못함)
- 특별한 연산자 필요 : 널 값인지를 알아내려면 반드시, is null 연산자로 만 가능
- 기본키에 널 값 허용 안함 : 즉, 기본키에 속한 컬럼에는 널 값을 허용 안함