Languages/SQL

default vs not null

HC-Kang 2022. 4. 11. 21:44

default: 사용자가 값을 명확하게 주지 않으면, 지정된 default 값으로 입력

-> null을 밀어넣으면 들어간다.

not null: 사용자가 뭐라 하건, null은 무조건 입력 불가능

-> null을 밀어넣으면 에러 발생

 

INSERT INTO table_name (columns) VALUES (values);

처음에는 위와 같이 입력하는 SQL에서 자동으로 default 값이 채워지는 것을 보고 막연하게

'아, null은 default로 채워지는구나' 

라고 생각했습니다.

 

그런데, 이번에 크롤러와 관련된 조금 규모가 큰 프로젝트를 진행하면서 수많은 null을 처리하면서 위 두 가지 개념이 비슷해보이지만 다른 개념이라는 것을 배웠습니다.

 

프로젝트중에 null을 처리하긴 해야겠지만, 크롤러를 쓰다보니 not null을 쓰기엔 굉장히 예외가 많아 질 것 같았고 결국 default로만 처리했습니다.

그리고, null값은 어디서든 우리의 예측을 뒤엎고 튀어나올 수있다는 점을 명심하고, 최대한 많은 경우의 수를 고려해서 처리해야 한다는 점을 배웠습니다..