728x90
1. IS NULL 과 = NULL은 다르다.
select * from table where column is null이라고 쓰면
컬럼 값이 null인 것을 고를 수 있다.
하지만 =null이라고 쓴다면 결과는 다르게나온다.
=null이라고 쓰면 아무런 row도 출력되지 않는다.
NULL은 어떤 값이 아니기 때문에 애초에 등호(=)를 사용해서 어떤 값과 비교할 수 있는 대상이 아니다.
그래서 = NULL은 절대 TRUE일 수가 없다.
그래서 IN NULL이라고 쓰는 것이다.
앞으로 NULL인지를 확인할 때는 = NULL을 쓰면 안 되고,
반드시 IS NULL을 써야한다
당연히 != NULL, <> NULL 같은 것도 쓸 수 없다.
이는 IS NOT NULL이라고 써야한다.
2. NULL에는 어떤 연산을 해도 결국 NULL이다.
height 컬럼에 NULL이 있는 열이 있다면,
모든 height 컬럼에 +3을 해서 조회하면 이 값은 계산이 되지 않는다.
가장 오른쪽의 빨간색 박스를 보면 원래 height 컬럼이 NULL이었던 곳은 여전히 NULL이다.
사실 NULL에는 뭘 더하든, 빼든, 곱하든, 나누든지 간에 항상 NULL이다.
NULL이라는 것 자체가 값이 없음을 나타내는데 그것에 어떤 처리를 해봤자 결국 또 NULL일 수밖에 없다.
+) NULL에 다른 값을 채우는 함수
COALESCE( column명, '####')
null 대신 다른 문자열로 대체할 수 있다.
728x90
'IT 정보 > 코딩' 카테고리의 다른 글
[sql] 데이터 정규화와 반정규화(1) - 정규화 (1) | 2023.03.05 |
---|---|
[my SQL] sql의 집계함수와 산술함수 (0) | 2023.03.01 |
[my SQL] 대소문자 구분 BINARY (0) | 2023.02.27 |
[my SQL] Workbench 사용법 (0) | 2023.02.27 |
[mySQL] 데이터 타입 바꿔서 검색 cast() (0) | 2023.02.27 |