paikpaik.log
로그인
paikpaik.log
로그인
MySQL, NULL 주의 사항
paikpaik
·
2023년 7월 16일
팔로우
0
mysql
0
DB, SQL(MySQL)
목록 보기
7/9
NULL
SQL에서 NULL의 의미
unknown
unavailable or withheld
not applicable
NULL을 조회할때는 = 을 사용하면 안됨!(사용X)
NULL을 조회할때는 IS, IS NOT 를 사용해야 함!
NULL과 Three-Valued Logic
NULL과 SQL three-valued logic
이러한 조회를 한다고 했을때 NULL과 비교연산을 하면 false라고 생각하기 쉽지만 false가 아니다!
SQL에서 NULL과 비교 연산을 하게 되면 그 결과는 UNKNOWN이다.
UNKNOWN은 'TRUE 일수도 있고 FALSE일 수도 있다'라는 의미이다.
three-valued logic : 비교/논리 연산의 결과로 TRUE, FALSE, UNKNOWN을 가진다.
WHERE절의 condition(s)
where절에 있는 condition(s)의 결과가 TRUE인 tuple(s)만 선택 된다.
즉, 결과가 FALSE거나 UNKNOWN이면 tuple은 선택되지 않는다.
NOT IN 사용 시 주의사항
v NOT IN (v1, v2, v3)는 아래와 같은 의미이다.
v != v1 AND v != v2 AND v != v3
만약 v1, v2, v3 중에 하나가 NULL이라면?
해결방법은 다양하지만 3가지 정도가 있다.
NOT NULL constraints를 걸어두기
subquery에서 NOT NULL 체크
NOT IN을 NOT EXISTS로 바꾸기
출처 : 쉬운코드
paikpaik
매일 앞으로 나아가는 개발자
팔로우
이전 포스트
MySQL, 데이터 조회(subquery)
다음 포스트
MySQL, 테이블조인(join)
0개의 댓글
댓글 작성