728x90
PK 복합키와 UNIQUE의 차이점
구분 | PK 복합키 | UNIQUE |
정의 | 테이블의 각 행을 고유하게 식별하는 데 사용되는 키 | 테이블의 각 행에 대해 중복되지 않는 값을 갖도록 제한하는 키 |
필수성 | 필수 | 선택적 |
Null 허용 여부 | Null 허용 불가 | Null 허용 가능 |
사용 목적 | 행의 고유 식별 | 중복 데이터 제거 |
- 필수성: PK 복합키는 필수이지만, UNIQUE는 선택적입니다.
- Null 허용 여부: PK 복합키는 Null을 허용하지 않지만, UNIQUE는 Null을 허용할 수 있습니다.
- 사용 목적: PK 복합키는 행의 고유 식별에 사용되지만, UNIQUE는 중복 데이터 제거에 사용됩니다.
예시를 들어 설명하겠습니다.
다음과 같은 테이블이 있다고 가정해 보겠습니다.
CREATE TABLE table1 (
name VARCHAR(255),
age INT,
PRIMARY KEY (name, age)
);
이 테이블에서 name과 age는 PK 복합키입니다. 즉, 이 두 컬럼의 조합은 테이블의 각 행에 대해 고유한 값을 만들어야 합니다.
다음과 같은 데이터를 입력해 보겠습니다.
INSERT INTO table1 (name, age) VALUES ('John', 20);
INSERT INTO table1 (name, age) VALUES ('Mary', 25);
INSERT INTO table1 (name, age) VALUES ('Peter', 30);
이렇게 입력하면, name과 age의 조합은 테이블의 각 행에 대해 고유한 값을 만들어서 데이터가 정상적으로 입력됩니다.
다음과 같은 테이블이 있다고 가정해 보겠습니다.
CREATE TABLE table2 (
name VARCHAR(255),
age INT,
UNIQUE (name)
);
이 테이블에서 name은 UNIQUE입니다.
즉, name 컬럼의 값은 테이블의 각 행에 대해 중복되지 않아야 합니다.
다음과 같은 데이터를 입력해 보겠습니다.
INSERT INTO table2 (name, age) VALUES ('John', 20);
INSERT INTO table2 (name, age) VALUES ('Mary', 25);
INSERT INTO table2 (name, age) VALUES ('John', 30);
이렇게 입력하면, name 컬럼의 값이 중복되어서 데이터 입력이 실패합니다.
결론적으로, PK 복합키는 행의 고유 식별에 사용되는 반면, UNIQUE는 중복 데이터 제거에 사용됩니다.
728x90
'STUDY > DB SQL' 카테고리의 다른 글
[PostgreSQL] PostgreSQL 설치하고 테이블 생성까지 (Windows) (0) | 2023.10.24 |
---|---|
[SQL] 오라클 중복값 조회 · 제외 조회 · 삭제 (1) | 2023.10.20 |
[SQL] 오라클 테이블스페이스에서 확장할 수 없습니다 (0) | 2023.08.10 |
[SQL] 오라클 COALESCE 함수 (NULL값 대체하기) (0) | 2023.07.26 |
[Oracle] SQL Developer 엑셀로 INSERT 하기 (0) | 2023.07.24 |