MySQL
 Computer >> コンピューター >  >> プログラミング >> MySQL

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;

用途やバージョンに応じて、両者の使い分けを検討するとよいでしょう。

  1. 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

  2. MySQLで予約語「from」を列名として使用する方法

    MySQLで「from」を列名として使うには? MySQLでは「from」は予約語(リザーブドワード)として登録されているため、そのまま列名として使用するとエラーが発生します。しかし、バッククォート(`` ` ``)で囲むことで、予約語である「from」を列名として扱うことができます。 この記事では、実際にテーブルを作成し、「from」を列名としてデータの挿入や取得を行う手順を解説します。 1. バッククォートを使ってテーブルを作成する まず、列名「from」をバッククォートで囲んでテーブルを作成します。以下のSQLを実行してください。 mysql> create table Demo