DB
Primary Key vs Unique Key
Room_Energy
2021. 2. 26. 21:51
오늘은 Primary Key와 Unique Key의 차이에 대해서 알아보겠습니다.
Primary Key
- Primary Key는 해당 테이블의 식별자 역할을 하는 제약 조건으로 테이블에 하나만 설정할 수 있습니다.
- 다른 레코드들과 서로 다르다는 사실을 확인할 수 있도록 도와주는 역할을 합니다.
- 즉, 유일성을 보장해 줍니다.
- 유일성을 보장해주기 위해서는 Unique 해야 하며 NULL이면 안됩니다.(NOT NULL)
Unique Key
- Unique Key는 테이블 내 항상 유일해야 하는 값을 의미합니다.
- 즉, 중복을 허용하지 않는 컬럼입니다.
- 유일해야 하는 값은 레코드당 하나일 필요가 없습니다.
- 즉, 한 테이블에 여러개 설정이 가능합니다.
- Unique Key는 NULL값이 허용됩니다.
회원 테이블 예제
회원 테이블이 있다고 가정할 때, 회원 이름, 주민번호, 아이디, 주소 등 여러 가지 있을 겁니다.
여기서 유일한 성질이 무엇이 있을까요?
회원 이름이나 주소는 중복이 될 수도 있습니다. 하지만 회원의 주민번호는 중복이 될 수 없을 겁니다.
또한, 회원 가입할 때 아이디는 보통 중복을 허용하지 않습니다. 그렇다면 유일한 성질은 다음과 같습니다.
- 유일한 성질: 주민번호, 아이디
- 즉, 주민번호, 아이디 둘 중 하나를 PK로 설정할 수 있습니다.
- 만약 회원 이름을 Unique Key로 설정했을 때
- 회원 이름을 가진 사람은 최초의 한 사람만 가입이 가능해집니다.
Primary Key와 Unique Key 생성 및 추가 삭제 방법
Primary Key
1. 테이블 생성
1-1) 단일 PK값 설정 방법
CREATE TABLE table_name (
column1 int(10) PRIMARY KEY
)
1-2) 다중 PK값 설정 방법(복합 키)
CREATE TABLE table_name (
column1 int(10),
column2 int(10),
PRIMARY KEY (column1, column2)
)
2. 새로운 PK 설정
ALTER TABLE table_name ADD PRIMARY KEY (column1, column2);
3. 삭제
ALTER TABLE table_name DROP PRIMARY KEY
Unique Key
1. 테이블 생성
CREATE TABLE table_name (
column1 int(10),
column2 int(10),
UNIQUE KEY uk_name (column1, column2)
)
2. 추가
ALTER TABLE table_name ADD UNIQUE uk_name (column1, column2);
3. 삭제
ALTER TABLE table_name DROP INDEX uk_name