4.3
칼럼의 제약조건: NULL 처리
테이블을 생성하고 삭제하는 가장 기본적인 문장을 실습해 봤습니다. 이제 좀 더 깊이 들어가 칼럼에 대한 제약조건을 알아보겠습니다. 제약조건이란 말 그대로 칼럼의 내용을 제한하는 조건을 말합니다. 가장 대표적인 제약조건은 NULL 처리입니다.
NULL이란 데이터가 없음을 의미합니다. 예를 들어 highschool_students 테이블에서 ‘홍길동’이라는 학생의 데이터를 입력하는데, 나이를 빼고 입력했다고 해 보죠. 그러면 홍길동의 나이 칼럼(age)에는 아무 값도 들어 있지 않습니다. 이 값을 NULL이라고 합니다. 또는 이런 상태를 NULL 값이 입력됐다고 표현하기도 합니다.
이번에는 학생 이름 칼럼인 student_name 칼럼에 아무 값을 입력하지 않았다고 합시다. 좀 이상하지 않을까요? 코드 4-5에서는 테이블을 생성한 후 이름을 입력하지 않아도 아무런 문제가 없었습니다. 하지만 학생 정보를 관리하는 테이블에 학생 이름을 넣지 않으면 과연 무슨 의미가 있을까요? highschool_students 테이블에서 최소한 이름과 학번, 두 칼럼에는 반드시 데이터를 입력해야 의미 있는 정보가 됩니다.
그래서 값을 반드시 입력해야 하는 칼럼에 값을 입력하지 않으면 오류가 발생하게 하고 입력 자체가 안 되도록 NOT NULL 옵션을 사용합니다. 테이블을 생성할 때 NOT NULL 옵션은 다음과 같이 적용합니다.
코드 4-8
CREATE TABLE highschool_students
(
student_no VARCHAR(20) NOT NULL,
student_name VARCHAR(100) NOT NULL,
grade TINYINT NULL,
class VARCHAR(50) NULL,
gender VARCHAR(20) NULL,
age SMALLINT NULL,
enter_date DATE
);