본문 바로가기

문제풀기/프로그래머스 문제풀이

[MySQL 문법 정리] 프로그래머스 Level1 문제를 통한 쿼리문 사용법 정리(ISNULL, IFNULL 함수)

728x90
반응형

안녕하세요~ 오늘도 프로그래머스 문제들을 풀어보면서 공부한 쿼리문들에 관해서 정리해보겠습니다~!!

 

먼저 ISNULL과 IFNULL은 데이터 값이 NULL인지 판별하기 위해 사용하는데요 언어에 따라서 사용하는 함수가 다르다고 합니다!

 

ISNULL : Microsorft SQL Server

IFNULL : MySQL

 

프로그래머스 문제 풀이할 때 MySQL에서 ISNULL, IFNULL 모두 사용할 수 있네요!!

 

1. ISNULL 함수

   ▷ DB에 NULL이 있는지 판별할 때 사용하는 쿼리문

 

◎ 사용법

1. ISNULL 사용 방법

SELECT ISNULL(컬럼1) FROM 테이블명;


▷ 해당 테이블에서 컬럼1의 값이 null이라면 true(1) 값을 반환합니다.
만약 null이 아니라면 false(0) 값을 반환합니다.


◎ 예시

SELECT ISNULL(content) FROM board;


▷ board 테이블에 content가 null이라면 1, null이 아니라면 0을 반환합니다.


◎ 예시

SELECT * FROM board WHERE !ISNULL(content);


▷ board 테이블에 id, title, content가 있다면 content가 null이 아닌 행들을 모두 출력할 수 있습니다.


ISNULL은 SELECT문 바로 다음에 사용해도 되고 WHERE절로 조건을 줄 수도 있습니다.

 

 

2. IFNULL 함수

   ▷ DB에 NULL이 있는지 판별할 때 사용하는 쿼리문

 

◎ 사용법

1. IFNULL 사용 방법
SELECT 컬럼1, IFNULL(컬럼2, 'NULL') AS 새컬럼 FROM 테이블명;


 테이블의 컬럼1, 컬럼2의 데이터를 모두 출력하는데 컬럼2가 NULL이라면 'NULL'이라는 문구가 출력되고 NULL이 아니라면 컬럼2의 값이 그대로 출력됩니다. 이때, 컬럼2는 '새컬럼'이라는 이름으로 지정됩니다.


◎ 예시
SELECT title, IFNULL(content, 'null') as newcontent FROM board;

 board 테이블의 title, content를 출력할 때 content가 null이면 'null', 아니라면 content 내용을 그대로 출력합니다.
출력되는 테이블은 title, newcontent 두가지 컬럼으로 출력됩니다.

 

ISNULL은 true, false만 판별하고 IFNULL은 true, false를 판별하며 해당 조건을 만족하면 원하는 데이터 값으로 출력할 수 있네요!!

 

점점 익숙해져 가고 있는 것 같아요!! 다음 시간에도 SQL에 대해서 계속 정리해볼게요~~!!!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

 

728x90
반응형