NULL에 관하여
Null 또는 NULL은 구조적 질의언어(SQL)에서 데이터베이스 내의 데이터 값이 존재하지 않는다는 것을 지시하는 데 사용되는 특별한 표시어(special marker)이다' _ 위키
데이터베이스를 처음 공부하시는 분들이 의외로 많이 혼동스러워 하시는 개념 입니다. '값이 존재하지 않는다'라는 말은 NULL은 비어 있는 공백이나, 숫자에서 없음을 뜻하는 0이 아닙니다. 말 그대로 값이 없는 상태입니다.
비어 있기 때문에 연산을 수행 할 수도 없습니다.
- NULL + 숫자 = NULL
- NULL > 숫자 = NULL
아직 부여되지 않은 값을 의미 합니다. 예를들어 아직 태어나지 않은 아이의 생일,
직원 중 수당(SAL)이 없는(NULL) 직원을 조회하고 싶은 경우 아래와 같이 조회 하시면 됩니다. 예제로 사용된 TABLE의 정보는 'SCOTT 계정 예제 Table(emp, dept, salgrade)'을 참고하시면 됩니다.
SELECT *
FROM EMP
WHERE COMM IS NULL;
예제에서 NULL인 컬럼을 조회하기 위해서 'IS NULL' 연산자를 사용하였습니다. 혹시 'COMM = NULL'이라고 하면 NULL인 컬럼을 검색할 수 있지 않을까 생각하시는 분도 계실 것 같아 직접 쿼리를 수행해 보았습니다.
보시는 바와 같이 아무런 결과 값을 출력하지 않습니다. 쿼리를 통한 연산에서 값이 'TRUE'인 경우에 결과를 출력하는데, NULL과의 연산 결과는 NULL로 결과 값이 'TRUE'도 'FALSE'도 아니기 때문에 결과값으로 출력되지 않습니다
논리 연산자와 NULL의 관계
AND 연산자
true | false | NULL | |
true | true | false | NULL |
false | false | false | NULL |
NULL | NULL | NULL | NULL |
OR 연산자
true | false | NULL | |
true | true | true | NULL |
false | true | false | NULL |
NULL | NULL | NULL | NULL |
'DataBase' 카테고리의 다른 글
테이블을 삭제하는 DROP (0) | 2025.09.02 |
---|---|
문자에 포함된 %, _ 찾기 (1) | 2025.09.01 |
[Oracle] 형변환 함수 - 날짜/숫자 → 문자열 TO_CHAR 함수 (1) | 2025.08.26 |
[Oracle] 형변환 함수 (0) | 2025.08.25 |
SQL Developer 질의 결과 내보내기 (0) | 2025.08.20 |