NOT NULL 제약 조건

편집일시: 2019-10-22 00:35 조회수: 1590 댓글수: 0
컬럼에 저장하는 값으로 NULL을 금지하고 싶은 경우, 컬럼에 NOT NULL 제약 조건을 설정한다. 여기에 NOT NULL 제약 조건의 사용법에 대해 설명한다. ## NOT NULL 제약 조건이란? 컬럼에 NOT NULL 제약 조건을 설정하면 해당 열에 NULL을 저장할 수 없다. NOT NULL 제약 조건을 컬럼에 설정하는 형식은 다음과 같다. ``` CREATE TABLE 테이블명 (컬럼명 NOT NULL, ...); ``` 그러면 실제로 제약 조건을 설정해 보자. 다음과 같이 테이블을 만든다. name 컬럼에는 NOT NULL 제약 조건이 설정한다. ``` create table user (name text not null, address text); ``` ``` sqlite> create table user (name text not null, address text); sqlite> ``` 그러면 데이터를 추가해 보자. address 컬럼에는 NULL을 저장할 수 있다. ``` insert into user values ('dekuma', 'Korea'); insert into user values ('kimkc', null); ``` ``` sqlite> insert into user values ('dekuma', 'Seoul'); sqlite> insert into user values ('kimkc', null); sqlite> ``` name 컬럼에 NOT NULL 제약 조건이 설정되어 있기에, NULL을 저장하려고 하면 "Error: NOT NULL constraint failed: user.name"라는 오류 메시지가 표시된다. ``` insert into user values (null, 'Busan'); ``` ``` sqlite> insert into user values (null, 'Busan'); Error: NOT NULL constraint failed: user.name sqlite> ``` NOT NULL 제약 조건이 설정된 컬럼에 값을 지정하지 않고 데이터를 추가하는 경우도 자동으로 NULL로 저장이 되기에 같은 오류가 발생한다. ``` insert into user (address) values ('Daejun'); ``` ``` sqlite> insert into user (address) values ('Daejun'); Error: NOT NULL constraint failed: user.name sqlite> ``` 데이터를 추가 할 때에 반드시 값이 설정될 필요가 있는 컬럼에는 NOT NULL 제약 조건을 설정하도록 하자.