본문 바로가기
MYSQL

MYSQL - null 확인법 is null( ), null 처리법 ifnull( )

by 하니__ 2024. 5. 14.
insert into books
(title, author_fname, author_lname, released_year, pages)
values
('좋은책','길동','홍',2024,240);

를 입력하여
 
 

 
null 데이터가 생겼다고 하자

null 데이터가 있는 행을 찾으려면?

 

select *
from books
where stock_quantity = null;

기존에 배운대로라면 이렇게 입력을 할 것이고

이렇게 나오게 된다
보통 잘 못 썼다면 에러가 날텐데 이 경우에는 버그로 취급한다
이때 =나 like가 아닌
 
is 라고 입력해줘야 정상적으로 출력이 된다

select *
from books
where stock_quantity is null;

 

 

그렇다면 null이 아닌 데이터를 가져오려면?

 

select *
from books
where stock_quantity is not null;

not is 가 아니다
is not 이다
 
기본 영어 문법을 생각하자

 

 

그렇다면 null 데이터를 다르게 표현하고 싶다면?

이런 데이터가 있다고 할때

타이틀의 null은 MISSING으로

grade의 null은 0 으로 하고 싶다면

select s.first_name, p.title, p.grade
from students s
left join papers p
	on s.id = p.student_id;

기존의 쿼리는 이랬고

이것을

 

 

select s.first_name,
 ifnull(p.title, 'missing') as title,
 ifnull(p.grade, 0) as grade
from students s
left join papers p
	on s.id = p.student_id;

타이틀 부분을 ifnull( )로 감싸고

첫번째 파라미터 에 기존에 가져오는 컬럼을 적고

두번째 파라미터를 그 컬럼의 null을 표현 하고픈 단어로 적어주면 되겠다