[SQL] PRIMARY KEY vs UNIQUE KEY 차이점
1. PRIMARY KEY와 UNIQUE KEY란?
데이터베이스에서 PRIMARY KEY(기본 키)와 UNIQUE KEY(고유 키)는 테이블의 데이터 무결성을 유지하는 데 사용됩니다.
두 키 모두 **중복을 허용하지 않지만, 차이점이 있습니다.**
2. PRIMARY KEY vs UNIQUE KEY 비교
특징 | PRIMARY KEY | UNIQUE KEY |
---|---|---|
중복 허용 여부 | ❌ 중복 불가능 | ❌ 중복 불가능 |
NULL 허용 여부 | ❌ NULL 값 불가능 | ✅ NULL 값 가능 |
테이블당 개수 | 1개만 가능 | 여러 개 가능 |
인덱스 | 자동으로 클러스터형 인덱스 생성 | 자동으로 비클러스터형 인덱스 생성 |
사용 목적 | 각 행을 고유하게 식별 | 중복 방지 및 데이터 무결성 보장 |
3. PRIMARY KEY 예제
✅ PRIMARY KEY 사용 예제
CREATE TABLE employees (
employee_id NUMBER PRIMARY KEY,
name VARCHAR2(100),
department VARCHAR2(50)
);
📌 설명:
employee_id
가 PRIMARY KEY이므로 중복된 값이 입력될 수 없음NULL
값을 허용하지 않음
✅ PRIMARY KEY 제약 조건 추가
ALTER TABLE employees ADD CONSTRAINT emp_pk PRIMARY KEY (employee_id);
📌 실행 결과:
Table EMPLOYEES altered.
4. UNIQUE KEY 예제
✅ UNIQUE KEY 사용 예제
CREATE TABLE users (
user_id NUMBER PRIMARY KEY,
email VARCHAR2(255) UNIQUE,
username VARCHAR2(100) UNIQUE
);
📌 설명:
email
과username
은 UNIQUE KEY이므로 **중복값을 허용하지 않음**- 하지만, **NULL 값은 허용**될 수 있음 (예: 이메일이 없는 경우)
✅ UNIQUE KEY 제약 조건 추가
ALTER TABLE users ADD CONSTRAINT email_uk UNIQUE (email);
📌 실행 결과:
Table USERS altered.
5. PRIMARY KEY vs UNIQUE KEY 사용 시 고려할 점
- ✔ **각 행을 고유하게 식별해야 한다면** → PRIMARY KEY 사용
- ✔ **중복을 방지해야 하지만 NULL을 허용해야 한다면** → UNIQUE KEY 사용
- ✔ **하나의 테이블에 여러 개의 UNIQUE KEY를 사용할 수 있음**
🔍 결론
- ✔ PRIMARY KEY는 **NULL을 허용하지 않으며, 테이블당 하나만 존재 가능**
- ✔ UNIQUE KEY는 **NULL을 허용하며, 여러 개 설정 가능**
- ✔ 데이터 무결성을 유지하려면 **두 키를 적절히 활용해야 함**
📖 다른 SQL 개념도 함께 확인하세요!
'SQL & 데이터베이스 > 데이터 무결성 & 트랜잭션' 카테고리의 다른 글
ORA-00060: Deadlock Detected 오류 해결 방법 (0) | 2025.03.24 |
---|---|
[SQL] 데이터 정규화(Normalization)란? - 개념과 장단점, 과정별 설명 (0) | 2025.03.13 |
[SQL] 트랜잭션(Transaction) 개념 및 오라클 예제 (0) | 2025.03.12 |
[SQL] Deadlock(교착 상태) 문제 해결 방법 (0) | 2025.03.11 |