[my SQL] sql null값 채우기, null의 특징

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