MySQLで既存カラム名を変更する方法|ALTER TABLE CHANGE構文を実例付きで解説
MySQLでは、ALTER TABLE文とCHANGE句を組み合わせることで、テーブル内の既存カラム(列)の名前を簡単に変更できます。この記事では、基本構文から実際の実行例まで、手順をわかりやすく解説します。
基本構文
ALTER TABLE table_name CHANGE old_column_name new_column_name datatype;
各要素の意味は以下の通りです。
- table_name:変更したいカラムが含まれるテーブルの名前
- old_column_name:現在設定されているカラム名(変更対象)
- new_column_name:新しく付けたいカラム名
- datatype:カラムのデータ型
CHANGE句を使用する際は、カラム名の変更に関係なくデータ型の指定が必須である点に注意してください。データ型を変更しない場合でも、現在の型をそのまま正確に記述する必要があります。
実行例:カラム「id」を「studentid」に変更する
ここでは、テーブル「Student_info」のカラム「id」を「studentid」に変更してみます。まず、変更前のテーブル状態を確認しましょう。
mysql> Select * from Student_info; +------+---------+------------+------------+ | id | Name | Address | Subject | +------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | +------+---------+------------+------------+ 5 rows in set (0.02 sec)
次に、ALTER TABLE文とCHANGE句を使ってカラム名を変更します。データ型は整数型(int)のまま維持します。
mysql> ALTER TABLE Student_info CHANGE id studentid int; Query OK, 0 rows affected (0.22 sec) Records: 0 Duplicates: 0 Warnings: 0
再度テーブルの中身を確認すると、カラム名が正しく変更されていることがわかります。
mysql> Select * from Student_info; +-----------+---------+------------+------------+ | studentid | Name | Address | Subject | +-----------+---------+------------+------------+ | 101 | YashPal | Amritsar | History | | 105 | Gaurav | Chandigarh | Literature | | 130 | Ram | Jhansi | Computers | | 132 | Shyam | Chandigarh | Economics | | 133 | Mohan | Delhi | Computers | +-----------+---------+------------+------------+ 5 rows in set (0.00 sec)
この結果セットから、カラム名が「id」から「studentid」へ正常に変更されたことが確認できます。
補足:MySQL 8.0以降ならRENAME COLUMNも使える
MySQL 8.0以降では、より直感的なRENAME COLUMN構文も利用できます。こちらはデータ型の再指定が不要なので、単純に名前だけを変えたい場合に便利です。
ALTER TABLE Student_info RENAME COLUMN id TO studentid;
用途やバージョンに応じて、両者の使い分けを検討するとよいでしょう。
-
MySQLでASキーワードを使ってSELECT結果の列名(別名)を変更する方法
ASキーワードで列名を別名に変更する基本MySQLでは、SELECT文の列名の後ろにASキーワードを付けることで、表示時の列名(エイリアス)を自由に変更できます。ここでは、学生情報を格納したテーブルを例に、その手順をわかりやすく解説します。1. サンプルテーブルを作成するまず、以下のようにテーブルを作成します。mysql> create table DemoTable ( Id int, StudentFirstNameInCollege varchar(100) ); Query OK, 0 rows affected (0.68 sec)この例では、「Id」と「Stu
-
MySQLで予約語「from」を列名として使用する方法
MySQLで「from」を列名として使うには? MySQLでは「from」は予約語(リザーブドワード)として登録されているため、そのまま列名として使用するとエラーが発生します。しかし、バッククォート(`` ` ``)で囲むことで、予約語である「from」を列名として扱うことができます。 この記事では、実際にテーブルを作成し、「from」を列名としてデータの挿入や取得を行う手順を解説します。 1. バッククォートを使ってテーブルを作成する まず、列名「from」をバッククォートで囲んでテーブルを作成します。以下のSQLを実行してください。 mysql> create table Demo