Computer >> 컴퓨터 >  >> 프로그래밍 >> MySQL

MySQL에서 ALTER TABLE로 열 이름 변경하기 – StudentName을 FirstName으로 바꾸는 방법

MySQL에서 기존 열의 이름을 바꾸려면 ALTER TABLE 문과 함께 CHANGE 절을 사용해야 합니다. 이 글에서는 예제 테이블을 직접 만들어 보고, StudentName 열을 FirstName으로 변경하는 전체 과정을 단계별로 살펴보겠습니다.

1단계: 예제 테이블 생성

먼저 다음과 같이 테스트용 테이블을 생성합니다.

mysql> create table DemoTable
-> (
-> StudentName varchar(100),
-> Age int
-> );
Query OK, 0 rows affected (0.84 sec)

2단계: 현재 테이블 구조 확인

DESC 명령으로 생성된 테이블의 구조를 확인해 보겠습니다.

mysql> desc DemoTable;

출력 결과

+----------------+--------------+------+-----+---------+-------+
| Field          | Type         | Null | Key | Default | Extra |
+----------------+--------------+------+-----+---------+-------+
| StudentName    | varchar(100) | YES  |     | NULL    |       |
| Age            | int(11)      | YES  |     | NULL    |       |
+----------------+--------------+------+-----+---------+-------+
2 rows in set (0.25 sec)

3단계: ALTER TABLE과 CHANGE로 열 이름 변경

다음은 ALTER TABLE 문에 CHANGE 절을 적용한 쿼리입니다. 이 예제에서는 열 이름 변경과 동시에 새로운 열 두 개(Id, CountryName)도 함께 추가하고 있습니다.

mysql> alter table DemoTable
-> add column Id int NOT NULL AUTO_INCREMENT PRIMARY KEY,
-> add column CountryName varchar(100) after Age,
-> change column StudentName FirstName varchar(200);
Query OK, 0 rows affected (1.51 sec)
Records: 0 Duplicates: 0 Warnings: 0

CHANGE 절의 기본 문법은 다음과 같습니다.

ALTER TABLE 테이블명 CHANGE 기존열이름 새열이름 데이터타입;

주의할 점은, 열 이름만 바꾸고 싶은 경우라도 데이터 타입을 반드시 함께 명시해야 한다는 것입니다. 위 예제에서는 기존 varchar(100)이었던 열을 varchar(200)으로 확장하면서 이름도 함께 변경했습니다.

4단계: 변경된 테이블 구조 확인

변경이 완료되었으므로 다시 한번 테이블 구조를 확인해 보겠습니다.

mysql> desc DemoTable;

출력 결과

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| FirstName   | varchar(200) | YES  |     | NULL    |                |
| Age         | int(11)      | YES  |     | NULL    |                |
| CountryName | varchar(100) | YES  |     | NULL    |                |
| Id          | int(11)      | NO   | PRI | NULL    | auto_increment |
+-------------+--------------+------+-----+---------+----------------+
4 rows in set (0.00 sec)

정리

실행 결과를 보면 StudentName 열이 성공적으로 FirstName(varchar(200))으로 변경되었고, Age 열 뒤에 CountryName 열이 추가되었으며, 자동 증가(AUTO_INCREMENT) 기본키인 Id 열도 함께 생성된 것을 확인할 수 있습니다.

참고로 MySQL 8.0 이상 버전에서는 RENAME COLUMN 구문을 사용하면 데이터 타입을 명시하지 않고도 열 이름만 간단하게 변경할 수 있으므로, 단순히 이름만 바꾸는 경우라면 이 방법이 더 편리합니다.