SQL에서 NULL은 "알 수 없는 값" 또는 "값이 없음"을 의미합니다.
그럼 Null이라는 데이터값을 찾으려면 어떤 키워드를 써야할까?
-- 재고가 null인 데이터를 가져오세요.
SELECT *
FROM books b
WHERE stock_quantity = null ?????
여태 문자, 숫자를 = 로 불러왔으니 null도 = 일까? No!
SELECT *
FROM books b
WHERE stock_quantity is null;
이전글에서도 like는 문장이니까 not을 사용했던거처럼
null은 문장이기때문에 is, is not을 사용합니다.
그렇다면 True, False같은 논리값은?
Boolean을 지원하는 데이터베이스 시스템에서는
SELECT * FROM Orders WHERE IsShipped IS TRUE;
SELECT * FROM Orders WHERE IsShipped IS FALSE;
IS TRUE, IS FALSE로 가능하다.
MySQL에서는
BOOL 또는 BOOLEAN 데이터 타입이 내부적으로 TINYINT(1)[ True(1),False(0) ]로 처리되기때문에
is보다는 =으로 찾는쪽이 권장된다.
(is 로도 불러오기는 가능! 권장사항임)
SELECT * FROM users WHERE is_active = 1; -- TRUE를 검색
SELECT * FROM users WHERE is_active = 0; -- FALSE를 검색