PRIMARY KEY (PK, 기본키)
테이블에서 대표되는 key / 테이블의 식별자 역할
- 중복을 허용하지 않는다. (Unique)
- NULL값을 허용하지 않는다. (NOT NULL)
- 테이블에 하나만 설정할 수 있다.
이 속성을 통해 다른 테이블과 연관관계(Join)를 가진다.
[참고] PRIMARY KEY가 복수일 수는 없지만 PRIMARY KEY를 구성하는 칼럼은 복수일 수 있다.
아래는 PRIMARY KEY를 구성하는 칼럼을 복수로 만든 쿼리문이다.
CREATE TABLE sample(
product_a CHAR(10),
product_b CHAR(10),
product_c CHAR(10) NOT NULL,
product_d CHAR(10) NOT NULL,
CONSTRAINT PRIMARY KEY (product_a, product_b)
);
따라서 이렇게 테이블로 보았을 땐 PK값이 "2개인 것처럼" 보인다.
UNIQUE KEY
- 중복을 허용하지 않는다. (Unique)
- 따라서 무결성 체크에 사용된다.
- 해당 칼럼의 입력값 각각이 모두 유일하다는 것을 보장. - NULL값을 허용한다. (NULL)
- 한 개의 테이블 안에서 여러 개에 지정이 가능하다.
FOREIGN KEY (FK)
Join 등으로 다른 테이블과 연관관계를 맺을 경우 다른 테이블의 PK값을 참조하는 칼럼
제약조건으로서의 역할도 한다.
- RESTRICT
FK 관계를 맺고 있는 데이터 ROW의 수정 또는 삭제를 막는다. - CASCADE
FK 관계를 맺을 때 가장 흔하게 접할 수 있는 옵션
FK와 관계를 맺은 상대 PK를 직접 연결해서 DELETE 또는 UPDATE 시 상대 Key 값도 삭제 또는 갱신시킨다.
이때에는 Trigger가 발생하지 않으니 주의하자. - SET NULL
논리적 관계상 부모의 테이블.
즉 참조되는 테이블의 값이 변경 또는 삭제될 때 자식 테이블의 값을 NULL로 만든다.
UPDATE 쿼리로 인해 SET NULL 이 허용된 경우에만 동작한다. - NO ACTION
RESTRICT 옵션과 동작이 같지만, 체크를 뒤로 미룬다. - SET DEFAULT
변경 또는 삭제 시에 값을 DEFAULT 값으로 세팅한다.
🔽 Reference
'기타 > 🚪 DB' 카테고리의 다른 글
효율적인 테이블 설계 방법 (0) | 2021.10.18 |
---|---|
MySQL Workbench를 통해 EC2 DB사용하기 및 Spring Boot 세팅 (0) | 2021.08.12 |
MariaDB 컨테이너 비밀번호 바꿔주기 (0) | 2021.07.27 |
HeidiSQL설치 및 도커의 MariaDB characterset을 utf8mb4로 변경 (0) | 2021.07.22 |
JPA / Hibernate / Spring Data JPA의 관계 + MyBatis와 비교 (0) | 2021.07.13 |