MySQL Primary Key
MySQL PRIMARY KEY: 고유 식별자를 사용한 데이터 관리
PRIMARY KEY는 MySQL에서 테이블의 각 레코드를 고유하게 식별하는 데 사용되는 제약 조건입니다. 기본 키는 데이터베이스의 무결성을 유지하는 데 중요한 역할을 하며, 중복된 값이나 NULL 값을 허용하지 않습니다. 이 가이드는 MySQL에서 PRIMARY KEY를 설정하는 방법, 기본 문법 및 예제를 설명합니다.
1. 기본 개념
1.1. 정의
PRIMARY KEY는 테이블에서 각 행을 유일하게 식별하는 열 또는 열 조합입니다. 기본 키가 설정된 열은 다음과 같은 특성을 가집니다:
- 고유성: 모든 행에서 기본 키의 값은 유일해야 합니다.
- NULL 불허: 기본 키 열은 NULL 값을 가질 수 없습니다.
1.2. 기본 문법
PRIMARY KEY는 테이블을 생성할 때 또는 기존 테이블을 수정할 때 설정할 수 있습니다.
1.2.1. 테이블 생성 시 PRIMARY KEY 설정
CREATE TABLE table_name (
column_name datatype PRIMARY KEY,
...
);
1.2.2. 여러 열로 PRIMARY KEY 설정
CREATE TABLE table_name (
column1 datatype,
column2 datatype,
...
PRIMARY KEY (column1, column2)
);
2. PRIMARY KEY 사용 예제
2.1. 기본 테이블 생성
가장 간단한 형태로 기본 키를 설정하는 예제입니다.
CREATE TABLE users (
id INT AUTO_INCREMENT,
username VARCHAR(50) NOT NULL,
email VARCHAR(100) NOT NULL,
PRIMARY KEY (id)
);
이 쿼리는 users
테이블을 생성하며, id
열을 기본 키로 설정합니다. 이 열은 자동 증가(AUTO_INCREMENT)로 설정되어, 새로운 사용자 추가 시
자동으로 고유한 값을 부여받습니다.
2.2. 여러 열로 기본 키 설정
여러 열을 조합하여 기본 키를 설정할 수 있습니다.
CREATE TABLE orders (
order_id INT,
user_id INT,
order_date DATETIME,
PRIMARY KEY (order_id, user_id)
);
이 쿼리는 orders
테이블을 생성하며, order_id
와 user_id
의 조합을 기본 키로 설정합니다. 이로 인해 같은 사용자에 대해
동일한 주문 ID가 존재할 수 없습니다.
3. PRIMARY KEY의 유용성
- 데이터 무결성 보장: PRIMARY KEY는 각 행이 고유하게 식별되도록 하여 데이터 무결성을 유지합니다.
- 효율적인 데이터 검색: 기본 키는 인덱스와 함께 사용되며, 데이터 검색을 더 빠르게 만들어줍니다.
- 관계 설정: 다른 테이블에서 외래 키(Foreign Key)를 설정하여 데이터베이스 간의 관계를 정의할 수 있습니다. 기본 키는 다른 테이블의 외래 키로 참조됩니다.
4. PRIMARY KEY 사용 시 주의사항
- 중복 값 금지: 기본 키로 설정된 열은 중복된 값을 가질 수 없습니다. 데이터베이스에 중복된 기본 키 값을 입력하려고 하면 오류가 발생합니다.
- NULL 값 금지: 기본 키는 NULL 값을 허용하지 않습니다. 기본 키로 설정된 열에 NULL 값을 입력하려고 하면 오류가 발생합니다.
- 기본 키 수정: 기본 키가 설정된 열의 값을 수정할 때는 주의해야 합니다. 다른 테이블에서 외래 키로 참조되고 있는 경우, 무결성 오류가 발생할 수 있습니다.
- 데이터 타입: 기본 키로 사용할 열의 데이터 타입은 적절하게 설정해야 하며, 특히 AUTO_INCREMENT와 같은 기능을 사용할 때는 정수형(INT)을 주로 사용합니다.
5. PRIMARY KEY 수정 및 삭제
기존 테이블에 PRIMARY KEY를 추가하거나 삭제할 수 있습니다.
5.1. PRIMARY KEY 추가
ALTER TABLE users
ADD PRIMARY KEY (id);
이 쿼리는 users
테이블에 id
열을 기본 키로 추가합니다. 이 열은 NULL 값을 허용하지 않으며, 고유한 값이어야 합니다.
5.2. PRIMARY KEY 삭제
기존의 PRIMARY KEY를 삭제하려면 다음과 같이 합니다.
ALTER TABLE users
DROP PRIMARY KEY;
이 쿼리는 users
테이블의 기본 키 제약 조건을 삭제합니다.
6. 요약
MySQL PRIMARY KEY는 데이터베이스 테이블에서 각 레코드를 고유하게 식별하는 데 사용되는 중요한 제약 조건입니다. 이를 통해 데이터 무결성을 보장하고, 데이터 간의 관계를 정의할 수 있습니다.
- 정의: 테이블의 각 행을 고유하게 식별.
- 고유성: 기본 키는 중복된 값을 허용하지 않음.
- NULL 불허: 기본 키는 NULL 값을 가질 수 없음.
- 유용성: 데이터 무결성 유지, 효율적인 데이터 검색, 관계 설정.
MySQL의 PRIMARY KEY를 활용하여 효율적이고 안정적인 데이터 관리를 수행할 수 있습니다.