Back-end Skill/DataBase

TIL 37일차 SQL 데이터베이스 #NULL의 개념과 Not NULL의미

Sophie소피 2021. 11. 12. 01:04

Primary Key를 나타내는  위 사진의 체크박스에 체크를 할 때 

DataType 열에 NN이라는 체크박스 보이시나요? 

NN이라고 써진 부분의 체크박스도 자동으로 같이 체크가 되어있습니다. 

왜 체크가 되어있을까요? 

 

그 전에  NN은 무슨 뜻일까요?! 

NN은  NOT NULL의 줄임말입니다! 즉 NULL이 아니다라는 뜻!!

 

흠 근데 NULL은 도대체 뭔데...? 

NULL은 데이터베이스에서 굉장히 중요한 개념이니까! 기억하면서 보기!

NULL은 특정 컬럼에서 값이 존재하지 않을 때

값이 존재하지 않는 그 상태를 나타내기 위해서 사용되는 키워드입니다!

 

멤버테이블을 확인해보면 NULL, 즉 어떤 값이 없음을 나타내고 있는걸 볼 수있어요! 

더 정확히 말하면 키 속성의 값이 없다는 뜻! 

근데 여기 조심해야할 것 ! 

NULL은 숫자 0과는 전혀 다른개념이라는 사실!

숫자 0은 0이라는 값을! 나타내고 있어요~!!

 

그리고 비어있는 문자열과도 다르다는 것도 알고계셨나요?!

NULL이 아니라 빈문자열이 있다면 그냥 빈문자열이 값인 것! 

 

이 사. 실. 꼭 주의하세요~~!!

 

다시 NN이 무엇인지 돌아가볼게요 

NN에 체크되어있다면, 이컬럼에 NULL이 있으면 절,대 안된다. 라는 뜻입니다! 

즉, 이 컬럼에는 무조건 무조건 어떤 값이 들어가야있어야한다는 의미인 것입니다!!

어떤 로우든 상관없이 이 컬럼만은 꼭! 어떤 값이 있어야하는 경우에는NN을 설정해줘야한다는 사! 실!  

 

이렇게 NN이 설정돤 컬럼에 NULL이 들어가게 될 row를 추가하려고 하면 데이터베이스에서 에러가 뜹니다 ㅜㅜ

애초에 그런 row가 추가되는 것을 막는 차원인것이죠!

 

자, 그럼 이제 왜 NN체크박스가 자동으로 체크가 되었을까요? 

위 사진을 보면 id 컬럼은PrimaryKey죠? 

primary key인 컬럼은 반드시 NN이어야합니다!

왜냐하면 primary key라는 것 자체가 특정 로우를 식별하기 위한 컬럼이기 때문이죠!

그런데 만약 NULL이 있는 경우가 있으면 그 역할을 못하게 되는거겠죠? 

그러니까 primary key에 NULL이 들어있는 row가 있으면 안됩니다!