Constraint : 제약조건
데이터 베이스의 테이블을 생성할때 각 컬럼은 각각의 제약조건을 갖습니다.
NOT NULL
NULL 값 (비어있는 값)을 저장할수 없습니다.
UNIQUE
같은 값을 저장할수 없습니다.
PRIMARY KEY
NOT NULL과 UNIQUE 의 제약조건을 동시에 만족해야 합니다.
그러므로 컬럼에 비어 있는 값과 동일한 값을 저장할수 없습니다.
하나의 테이블에 하나의 컬럼만 조건을 설정할수 있습니다.
AUTO_INCREMENT
주로 테이블의 PRIMARY KEY 데이터를 저장할때 자동으로 숫자를 1씩 증가시켜 주는 기능으로 사용합
니다.FOREIGN KEY
다른 테이블과 연결되는 값이 저장됩니다.
테이블 수정으로 FK 설정
1
2
3
4alter table money
add constraint fk_user
foreign key (user_id) # money의 user_id
references user (user_id); # user의 user_id테이블 생성시 FK 설정
1
2
3
4
5
6create table money(
money_id int primary key auto_increment,
income int,
user_id int,
foreign key (user_id) references user(user_id)
);
ON DELETE, ON UPDATE 설정
참조를 받는 데이터가 수정하거나 삭제될때 참조 하는 데이터를 설정(수정,삭제 등등)
CASECADE : 참조 받는 데이터가 수정, 삭제하면, 참조하는 데이터도 수정 삭제
SET NULL : 참조 받는 데이터가 수정 삭제하면, 참조하는 데이터는 NULL로 수정
DEFAULT
데이터를 저장할때 해당 컬럼에 별도의 저장값이 없으면 DEFAULT로 설정된 값이 저장됩니다.
1
2
3
4
5
6
7create table money(
money_id int primary key auto_increment,
income int,
user_id int,
foreign key (user_id) references user(user_id)
on update cascade on delete set null
);