SQL 데이터 조회와 필터링 : IS NULL 연산자
카테고리 : SQL >> Sqlgrammar
IS NULL 연산자
이 학습은 패스트캠퍼스의 올인원 패키지 : 모두를 위한 SQL/DB 강의를 듣고 복습하는 내용입니다.
## NULL 이란?
-> 아무것도 넣지 않는 공간(아무것도 아닌 것)
IS NULL 연산자 문법
특정 집합을 추력 시 출력하는 행의 수를 한정하는 역할을 한다. 부분 범위 처리시 사용된다.
● IS NULL
>> COLUMN_NAME 컬럼의 값이 NULL인 집합을 출력한다.
● IS NOT NULL
>> COLUMN_NAME 컬럼의 값이 NULL이 아닌 집합을 출력한다.
IS NULL 실습
● 테이블 만들기
CREATE TABLE CONTACTS
(
ID INT GENERATED BY DEFAULT AS IDENTITY
, FIRST_NAME VARCHAR(50) NOT NULL
, LAST_NAME VARCHAR(50) NOT NULL
, EMAIL VARCHAR(255) NOT NULL
, PHONE VARCHAR(15)
, PRIMARY KEY (ID)
);
INSERT
INTO
CONTACTS(FIRST_NAME, LAST_NAME, EMAIL, PHONE)
VALUES
('John','Doe','john.doe@example.com',NULL),
('Lily','Bush','lily.bush@example.com','(408-234-2764)');
COMMIT;
» 컬럼이 ID, FIRST_NAME, LAST_NAME, EMAIL, PHONE인 테이블을 만들고(COMMIT할 필요 없다.)
값을 INSERT 한다.(COMMIT 필요)
- 확인
SELECT
*
FROM
CONTACTS;
● 기본 실습
- 쿼리문
SELECT
ID
, FIRST_NAME
, LAST_NAME
, EMAIL
, PHONE
FROM
CONTACTS
WHERE PHONE IS NULL;
- 실행 결과
>> PHONE 컬럼의 값이 NULL인 행만 출력되었다.
- 아래와 같이 PHONE = NULL으로 쿼리문을 작성하면 아무것도 출력되지 않는다.
SELECT
ID
, FIRST_NAME
, LAST_NAME
, EMAIL
, PHONE
FROM
CONTACTS
WHERE PHONE = NULL;
● IS NOT NULL
- 쿼리문
SELECT
ID
, FIRST_NAME
, LAST_NAME
, EMAIL
, PHONE
FROM
CONTACTS
WHERE PHONE IS NOT NULL;
- 실행결과
>> PHONE이 NULL값이 아닌 행만 출력되었다.
## NULL은 아무것도 아니라고 표시한 값이며, 추출하려면 ‘=’ 쓰면안되고,
IS NULL, IS NOT NULL 쿼리문을 사용해야 한다.