MySQL Alter Table
MySQL ALTER TABLE: 테이블 구조 수정하기
ALTER TABLE 문은 MySQL에서 기존 테이블의 구조를 변경하는 데 사용되는 SQL 명령어입니다. 이 명령어를 통해 열 추가, 수정, 삭제와 같은 작업을 수행할 수 있습니다. 이 가이드는 MySQL에서 ALTER TABLE을 사용하는 방법, 기본 문법 및 예제를 설명합니다.
1. 기본 개념
1.1. 정의
ALTER TABLE 문은 테이블의 구조를 변경하는 데 사용됩니다. 이를 통해 데이터베이스 내의 테이블을 동적으로 수정할 수 있으며, 기존 데이터에 영향을 주지 않으면서도 새로운 요구사항을 반영할 수 있습니다.
1.2. 기본 문법
ALTER TABLE table_name
[alter_specification];
- table_name: 수정할 테이블의 이름
- alter_specification: 수행할 변경 작업 (예: ADD, MODIFY, DROP 등)
2. ALTER TABLE 사용 예제
2.1. 열 추가
테이블에 새 열을 추가하려면 ADD 구문을 사용합니다.
예제
ALTER TABLE users
ADD COLUMN age INT;
위 쿼리는 users
테이블에 age
라는 이름의 정수형 열을 추가합니다.
2.2. 열 수정
기존 열의 데이터 타입이나 제약 조건을 수정하려면 MODIFY 구문을 사용합니다.
예제
ALTER TABLE users
MODIFY COLUMN age TINYINT;
이 쿼리는 users
테이블의 age
열의 데이터 타입을 TINYINT
로 변경합니다.
2.3. 열 이름 변경
열의 이름을 변경하려면 CHANGE 구문을 사용합니다.
예제
ALTER TABLE users
CHANGE COLUMN age birth_year INT;
이 쿼리는 users
테이블의 age
열 이름을 birth_year
로 변경합니다.
2.4. 열 삭제
테이블에서 열을 삭제하려면 DROP 구문을 사용합니다.
예제
ALTER TABLE users
DROP COLUMN age;
이 쿼리는 users
테이블에서 age
열을 삭제합니다.
2.5. 여러 작업 동시에 수행하기
한 쿼리에서 여러 작업을 동시에 수행할 수 있습니다.
예제
ALTER TABLE users
ADD COLUMN address VARCHAR(255),
DROP COLUMN age;
이 쿼리는 users
테이블에 address
열을 추가하고 age
열을 삭제합니다.
3. 제약 조건 추가 및 수정
3.1. 기본 키 추가
테이블에 기본 키를 추가하려면 다음과 같이 합니다.
예제
ALTER TABLE users
ADD PRIMARY KEY (id);
이 쿼리는 users
테이블의 id
열을 기본 키로 설정합니다.
3.2. 외래 키 추가
외래 키 제약 조건을 추가하려면 ADD CONSTRAINT 구문을 사용합니다.
예제
ALTER TABLE orders
ADD CONSTRAINT fk_user
FOREIGN KEY (user_id) REFERENCES users(id);
이 쿼리는 orders
테이블의 user_id
열에 대해 users
테이블의 id
열을 참조하는 외래 키 제약 조건을
추가합니다.
4. 테이블 이름 변경
테이블 이름을 변경하려면 RENAME TO 구문을 사용합니다.
예제
ALTER TABLE users
RENAME TO customers;
이 쿼리는 users
테이블의 이름을 customers
로 변경합니다.
5. 주의사항
- 데이터 손실: 열을 삭제할 경우 그 열에 있는 데이터는 영구적으로 삭제됩니다. 따라서 삭제하기 전에 백업하는 것이 좋습니다.
- 제약 조건: 기본 키 및 외래 키 제약 조건을 추가할 때는 관련된 데이터 무결성을 반드시 확인해야 합니다.
- 성능 고려: ALTER TABLE 명령어는 대규모 데이터베이스에 영향을 미칠 수 있으며, 특히 테이블이 큰 경우 성능 저하를 초래할 수 있습니다. 변경 작업을 수행할 때는 시스템 부하를 고려해야 합니다.
6. 요약
MySQL ALTER TABLE 문은 기존 테이블의 구조를 변경하는 데 필수적인 도구입니다. 이 명령어를 사용하여 열 추가, 수정, 삭제 및 제약 조건 설정과 같은 다양한 작업을 수행할 수 있습니다.
- 정의: 기존 테이블의 구조 변경.
- 기본 문법:
ALTER TABLE table_name [alter_specification];
- 열 추가/수정/삭제: 각 작업에 대해 각각의 구문 사용.
- 제약 조건 추가: 기본 키, 외래 키 등의 제약 조건 설정 가능.
- 테이블 이름 변경: 테이블의 이름을 변경하는 방법.
MySQL의 ALTER TABLE 기능을 활용하여 데이터베이스 구조를 효율적으로 관리할 수 있습니다.