이 둘의 차이점을 우리는 다들 알고는 있다 피부로는 그런데 막상 질문이나 문제를 접했거나 누군가가 물어봤을 때 명확하게 대답하기 쉽지 않을 수 있다고 생각한다. 사실 내가 그랬고 SQLD 자격증을 공부하면서 문제로 나왔을 때 보기를 보고 잘 풀었지만 블로그를 통해서 정리 한번은 하고 넘어가고 싶어서 기록하게 되었다.
CREATE TABLE Employees (
EmployeeID INT PRIMARY KEY, -- Primary Key
FirstName VARCHAR(50),
LastName VARCHAR(50),
Department VARCHAR(50),
Email VARCHAR(100) UNIQUE -- Unique Key
);
예시에서 EmployeeID는 '기본키(PK)'이고, Email은 '유니크 키'다.
유니크 키는 위 예시에서는 이메일이다. 이메일은 중복이 있어서는 안된다. 말 그대로 유니크, 고유한 값을 가져야 한다.
그리고 간단하게 생각하면 기본키는 해당 테이블의 기준이되는 값이라고 생각한다. 그래서 실제로 클러스터드 인덱스로 보통 사용된다. 학번, 사번 같은 경우가 예이다. 마찬가지로 기본키도 유니크한 값을 가져야 한다고 생각이 될 것이다. 그리고 모든 사원들은 반드시 사번을 가진다. 즉 기본키는 NULL값을 허용하지 않는다.
정리하자면 둘의 차이는 다음과 같이 정리할 수 있다.