본문 바로가기

Data Literacy/SQL

Chapter 1. 데이터 조회, 필터링(11) - IS NULL

PostgreSQL logo image

 

 

이번 시간에 다룰 내용은 IS NULL 입니다. 아마 키워드만 봐도 대략 어떤 용도인지 감이 오시죠? IS NOT NULL과 함께 사용되며, 이는 특정 컬럼 값이 NULL인지 아닌지 여부를 판단하게 되는 키워드 입니다. 기본적인 사용 방식은 다음과 같습니다.

 

select *
  from table_name
 where column_name is null

 

select *
  from table_name
 where column_name is not null

 

 


 

 

우선 이번에 IS NULL 예제를 실습하기 위해서, 두 개의 row를 가진 임의의 테이블을 하나 생성해 보겠습니다. 아직 테이블 생성과 관련된 내용은 배우지 않았지만, 간단하게 명령어를 중심으로 살펴보겠습니다. 

 

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)
);

 

위의 명령어를 통해 칼럼 ID / FIRST_NAME / LAST_NAME / EMAIL / PHONE을 가진 테이블 CONTACTS를 생성했습니다. 이제 여기에 두 명의 데이터를 삽입하도록 하겠습니다. 

 

insert into contacts(first_name, last_name, email, phone)
	values ('John', 'Doe', 'johndoe@gmail.com', null),
			('Lily', 'Bush', 'lily.bush@gmail.com', '(123-456-7890)');

 

이제 위의 테이블을 출력해보겠습니다. 

 

select *
  from contacts

 

 

 

위의 데이터를 보시면 PHONE 칼럼에서 NULL인 데이터와 아닌 데이터가 존재합니다. 이 두 개의 데이터를 기반으로 IS NULL을 사용해 보겠습니다. 

 

간단하게, 두 명의 회원 중 [PHONE] 번호가 NULL인 회원의 FIRST_NAME, LAST_NAME, EMAIL, PHONE을 출력해 보겠습니다. 

 

select id, first_name, last_name, email, phone
  from contacts
 where phone is null

 

 

 

 

간단하지만 이와 반대로, [PHONE] 번호가 NULL이 아닌 - 즉 값이 입력되어 있는 회원의 정보도 동일한 방식으로 출력해 보겠습니다. 

 

select id, first_name, last_name, email, phone
  from contacts
 where phone is not null