5일차: 제약조건
제약조건은 데이터의 무결성을 지키기 위해 제한하는 조건
->데이터의 결함이 없는 상태인 무결성을 유지하기 위해 DBMS가 제공함.
- 혼란스러운 상황 ex) 같은 아이디가 회원으로 추가 되는 경우, 회원이 탈퇴해서 멤버 테이블에서 삭제되었는데 구매 테이블에서는 여전히 아이디가 존재하는 경우, 등
제약 조건 종류
- Primary Key 제약조건
- Foreign Key 제약조건
- Unique 제약조건
- Check 제약조건
- Default 정의
- Null값 허용
기본키(Primary Key) 제약 조건
: 데이터 베이스 테이블에서 각각의 행/레코드가 유일하게 식별 가능한 값을 가지도록 한다. 고유하게 식별하는 테이블의 필드(field)
- 기본키는 반드시 고유한 값을 가지고, 기본키로 설정된 열은 NULL값을 가질 수 없다.
- 하나의 테이블은 오직 한 개의 기본키를 가지는데, 기본 키는 단일 필드 외에도 여러 필드가 하나의 기본 키로 구성되기도 함-> 다중 필드를 기본 키로 사용시 복합 키라고 한다.
예제
create table member
( mem_id char(8) not null primary key, mem_name varchar(10) not null, height tinyint unsigned null ); 혹은 create table member ( mem_id char(8) not null primary key, mem_name varchar(10) not null, height tinyint unsigned null ); alter table member add constraint primary key (mem_id); |
외래 키(Foreign Key)
: 두 테이블을 연결하기 위해 사용. 참조 키(referencing key)라고도 부른다.
- 다른 테이블의 기본 키와 일치하는 값을 가지는 하나의 컬럼 혹은 여러 컬럼의 조합
- 두 테이블 사이 관계는 테이블 중 하나의 기본 키와 두 번째 테이블의 외래 키를 연결하면서 생긴다.
- 한 테이블이 어떤 필드에 정의된 기본 키를 가진다면 그 필드의 값이 같은 두 개의 레코드를 가질 수 없다(중복 불가.)
예제
create table buy
( num int auto_increment not null primary key, mem_id char(8) not null, prod_name char(6) not null, foreign key(mem_id) references member(mem_id)
|
ON UPDATE CASCADE, ON DELETE CASCADE
create table buy
( num int auto_increment not null primary key, mem_id char(8) not null, prod_name char(6) not null, foreign key(mem_id) references member(mem_id) on update cascade on delete cascade ); |
- 기타 제약 조건
- 고유 키 제약 조건 - 중복되지 않는 유일한 값만 입력 가능
- 체크 제약 조건 - 조건에 만족 되는 값만 입력 가능
- 기본값 정의 - 값을 입력하지 않았을 때 자동으로 입력될 값을 미리 지정
- 널 값 허용 - NULL or NOT NULL
'스파르타 부트캠프(spring)' 카테고리의 다른 글
[내일배움캠프_Spring] 자바 Spring 입문_Git 브랜치 활용_230118 (0) | 2023.01.18 |
---|---|
[내일배움캠프_Spring] 자바 Spring 입문_예약어_230116 (0) | 2023.01.16 |
[내일배움캠프] 자바 Spring_SQL(4)JOIN_230112 (0) | 2023.01.12 |
[내일배움캠프] 자바 Spring_SQL(3)CAST, CONVERT_230111 (0) | 2023.01.12 |
[내일배움캠프] 자바 Spring_SQL(2)삽입, 수정, 삭제_230110 (0) | 2023.01.10 |