TIL 37일차 SQL 데이터베이스 #NULL의 개념과 Not NULL의미
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가 있으면 안됩니다!