SQL을 배우다가 문득 궁금증이 생겼다.
Primary Key(PK)와 Unique Key(UK)의 차이점은 무엇일까..?
이번에는 이 둘의 차이를 한 번 살펴보자
Primary Key(PK)와 Unique Key(UK)는 데이터베이스 테이블에서 고유성을 보장하기 위해 사용되는 두 가지 제약 조건이다.
그러나 이 두 가지는 몇 가지 중요한 차이점이 있으며, 그 중 하나는 null 값의 허용 여부라고 볼 수 있다.
: 테이블의 각 행(row)을 고유하게 식별하는 데 사용됩니다.
CREATE TABLE Users (
id INT PRIMARY KEY, -- Primary Key는 null이 불가능하며 중복될 수 없음
username VARCHAR(100)
);
: 특정 열(column)의 값들이 고유함을 보장하는 데 사용됩니다.
CREATE TABLE Users (
id INT PRIMARY KEY,
email VARCHAR(100) UNIQUE, -- Unique Key는 null 값을 허용하지만 중복된 null 값은 불가능
phone VARCHAR(15) UNIQUE
);
간단하게 정리하면 이렇게 볼 수 있다.
이를 예시를 들어서 본다면 정말 간단하게 이렇게 얘기할 수 있다.
1) 모든 사용자는 customoer_id를 가지며, null이 될 수 없다. (pk)
2) 하지만, email과 phone number은 중복은 되지 말아야 하지만, null이 허용된다. (uk)
즉 아래와 같다.
결론을 지어보자
Primary Key는 테이블의 각 행을 식별하기 위한 필수적인 요소로 null 값을 허용하지 않고, 중복을 허용하지 않는다..
Unique Key는 특정 열의 고유성을 보장하는 제약 조건으로 null 값을 허용할 수 있으며, null은 중복되지 않는 한 허용된다.