본문 바로가기
programming/DataManage

mysql null 값 체크 checking null value in mysql

by 개코 - 개발과 코딩 2022. 6. 2.

mysql 에서 null 값을 체크하고 검사할 때 사용하는 것이 IS NULL 과 IS NOT NULL 키워드이다. 이 키워드는 조건절에 사용되어 특정 컬럼의 값이 NULL 인지 아닌지를 판별할 수 있다. IS NULL 은 컬럼의 값이 NULL 인 것을 검색하고 IS NOT NULL 은 컬럼의 값이 NULL 이 아닌 것을 검색한다.

mysql null 값 체크
checking null value in mysql

데이터베이스인 mysql 의 컬럼에도 null 값이 존재한다.

null 은 빈값도 차이가 있는데 내부적으로는 메모리의 공간은 있지만 어떠한 값도 없는 것을 말한다. 메모리의 빈 공간을 의미하기도 한다.

빈 값은 메모리의 특정 공간이 있고 스페이스바 또는 그와 비슷한 가시적으로 보이지 않는 어떠한 값이 존재하는 것을 말한다.

빈 값은 null 값이 아니기 때문에 간혹 데이터 가공시 빈값과 null 값으로 곤혹을 치르기도 한다.

null 값 공간은 있지만 어떠한 값도 없다

mysql 에서 null 을 검사하는 구문은 IS NULL 과 IS NOT NULL 이 있다.

이 둘의 차이는 테이블의 컬럼의 값이 NULL 인 경우와 아닌 경우를 판단하는 것이다.

IS NULL 키워드와 IS NOT NULL 키워드는 조건절에서 사용되며 특정 컬럼에 들어있는 값이 NULL 인지 아닌지를 찾을 수 있다.

아래는 IS NULL 과 IS NOT NULL 키워드를 사용하는 구문을 나타내고 있다.

  • IS NULL
    컬럼의 값이 NULL 인 것을 검색한다.
  • IS NOT NULL
    컬럼의 값이 NULL 이 아닌 것을 검색한다.
SELECT * FROM 테이블명
 WHERE 컬럼명 IS NULL
   AND 컬럼명 IS NOT NULL

샘플코드

IS NULL 과 IS NOT NULL 키워드를 사용하여 mysql 예제를 만들어 본다.

테이블의 생성부터 삭제까지 진행하며 중간에 있는 SELECT 쿼리의 검색 부분만 보면 된다.

아래의 코드는 IS NULL 과 IS NOT NULL 키워드를 사용하여 제목 컬럼인 title 의 값이 NULL 인지 아닌지를 검색하는 쿼리문을 보여주고 있다.

/** tb_sample 테이블을 생성 */
CREATE TABLE tb_sample (
	idx INT,
	company VARCHAR(250),
	title VARCHAR(250),
	content TEXT,
	insert_date DATETIME,
	update_date DATETIME
)
;

/** tb_sample 테이블에 데이터 추가  */
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES( '1', '현대자동차', NULL, '내용1', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES( '2', '기아자동차', '제목2', NULL, NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES ( '3', '현대자동차', NULL, '내용3', NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES ( '4', '기아자동차', '제목4', NULL, NOW(), NOW() )
;
INSERT INTO tb_sample ( idx, company, title, content, insert_date, update_date )
VALUES ( '5', '쌍용자동차', NULL, '내용5', NOW(), NOW() )
;

/** tb_sample 테이블 null 값 찾기  */
SELECT * FROM tb_sample
 WHERE title IS NULL 
;

/** tb_sample 테이블 not null 값 찾기  */
SELECT * FROM tb_sample
 WHERE title IS NOT NULL 
;

/** tb_sample 테이블 데이터 삭제  */
DELETE FROM tb_sample
;

/** tb_sample 테이블 데이터 완전 삭제  */
TRUNCATE tabLE tb_sample
;

/** tb_sample 테이블 삭제  */
DROP TABLE tb_sample
;

/*-----*/

특정 컬럼의 값이 NULL 인 것을 찾을 때는 조건절에 컬럼과 함께 IS NULL 키워드를 사용하면 된다.

특정 컬럼의 값이 NULL 이 아닌 것을 찾을 때는 조건절에 컬럼과 함께 IS NOT NULL 키워드를 사용하면 된다.

위의 쿼리문을 보면 제목에 대해 값이 있는지 없는지 2가지를 검색하고 있음을 알 수 있다.

결과 화면을 보자.

반응형

댓글