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가지를 검색하고 있음을 알 수 있다.
결과 화면을 보자.
'programming > DataManage' 카테고리의 다른 글
mysql 데이터 삭제 delete 사용 using mysql delete statement (0) | 2022.06.08 |
---|---|
mysql 데이터 수정 update 사용하기 using mysql update statement (0) | 2022.06.06 |
mysql insert 테이블에 데이터 입력하기 using mysql insert statement (0) | 2022.05.31 |
mysql order by ASC DESC 여러개 컬럼 정렬 순서 using mysql SELECT ORDER BY (0) | 2022.05.29 |
mysql order by 정렬 사용 using mysql SELECT ORDER BY (0) | 2022.05.25 |
댓글