데이터 베이스 제약조건 이란?
- 데이터의 무결성을 지키기위한 규칙
- 테이블을 수정 작업하는 경우 잘못된 트랜잭션 수행을 방지
- 테이블 간 제약조건이 있어서 종속성이 있는 경우 테이블 삭제를 방지
제약 조건의 종류
- 기본키(PK, primary Key)
- 테이블 생성 시 고유의 단 한 개의 PK설정
- 중복 불가, NULL 불가
- 고유 인덱스를 자동으로 생성
- 여러 컬럼을 하나의 PK로 생성 가능
- MariaDB는 PK에 Constraint명을 설정할 수 없음
- 외래키(FK, Foreign Key)
- 한 테이블을 다른 테이블과 연결해주는 역할
- 테이블 간의 잘못된 매핑을 방지하는 역할
- FK를 선언한 테이블이 하위 테이블로 인식
- 참조하는 컬럼의 데이터 타입이 일치해야하며, PK와 Unique만 참조가 가능
- 테이블 동작의 종류
- ON DELETE + 동작
상위 테이블의 값이 삭제될 경우의 동작
- ON UPDATE + 동작
상위 테이블의 값이 수정될 경우의 동작
- 이하 설정할 수 있는 동작
- CASCADE : 하위 테이블의 데이터도 같이 삭제 또는 수정
- SET NULL : 하위 테이블의 데이터는 NULL로 변경
- NO ACTION : 하위 테이블의 데이터는 유지
- SET DEFAULT : 하위 테이블의 데이터는 필드의 기본값으로 설정
- RESTRICT : 하위 테이블에 데이터가 남아 있으면, 상위 테이블의 데이터를 삭제하거나 수정 불가
- 고유키(UK, UNIQUE)
- 중복된 값을 허용하지 않지만, 여러 개 NULL값을 허용
- 고유 인덱스를 자동 생성
- NOT NULL
- DEFAULT
- CHECK