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

MySQLでカラム名(列名)を変更する方法|ALTER TABLEとCHANGE句の使い方

MySQLでテーブルの列名(カラム名)を変更するには、ALTER TABLE文とCHANGE句を組み合わせて使用します。この記事では、実際のSQL実行例とともに、カラム名を変更する手順をわかりやすく解説します。

1. サンプルテーブルを作成する

まず、例として使用するテーブルを作成しましょう。

mysql> create table DemoTable796 (
   StudentId int NOT NULL AUTO_INCREMENT PRIMARY KEY,
   Name varchar(100),
   StudentAge int
);
Query OK, 0 rows affected (0.56 sec)

2. 現在のテーブル構造を確認する

DESCコマンドを実行して、現在のテーブル構造を確認します。

mysql> desc DemoTable796;

実行結果は以下の通りです。

+------------+--------------+------+-----+---------+----------------+
| Field      | Type         | Null | Key | Default | Extra          |
+------------+--------------+------+-----+---------+----------------+
| StudentId  | int(11)      | NO   | PRI | NULL    | auto_increment |
| Name       | varchar(100) | YES  |     | NULL    |                |
| StudentAge | int(11)      | YES  |     | NULL    |                |
+------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

現時点では「Name」というカラム名が設定されていることがわかります。

3. ALTER TABLEとCHANGE句でカラム名を変更する

カラム名を変更する際の基本構文は以下の通りです。

ALTER TABLE テーブル名 CHANGE 変更前のカラム名 変更後のカラム名 データ型;

それでは、「Name」を「StudentName」に変更してみましょう。

mysql> alter table DemoTable796 change Name StudentName varchar(100);
Query OK, 0 rows affected (0.29 sec)
Records: 0 Duplicates: 0 Warnings: 0

注意点:CHANGE句を使用する場合、カラム名を変更するかどうかにかかわらず、変更後のカラムに対してデータ型を必ず指定する必要があります。データ型を省略するとエラーになるので注意してください。

4. 変更後のテーブル構造を確認する

もう一度テーブル構造を確認して、変更が正しく反映されたかチェックしましょう。

mysql> desc DemoTable796;

実行結果は以下の通りです。

+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| StudentId   | int(11)      | NO   | PRI | NULL    | auto_increment |
| StudentName | varchar(100) | YES  |     | NULL    |                |
| StudentAge  | int(11)      | YES  |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
3 rows in set (0.00 sec)

「Name」が「StudentName」に正しく変更されていることが確認できました。

補足:MySQL 8.0以降ではRENAME COLUMNも利用可能

MySQL 8.0以降では、より直感的なRENAME COLUMN構文を使うこともできます。こちらはデータ型の指定が不要で、カラム名だけを変更したい場合に便利です。

mysql> alter table DemoTable796 rename column Name to StudentName;

まとめ

  • MySQLでカラム名を変更するには、ALTER TABLE文とCHANGE句を使用する。
  • CHANGE句では、変更後のカラム名に加えてデータ型の指定が必須
  • MySQL 8.0以降なら、データ型指定が不要なRENAME COLUMN構文も利用できる。
  1. MySQLでNULLを含む列の乗算を処理する方法|COALESCE関数の使い方

    MySQLでNULLを含む列の乗算を正しく計算するにはMySQLでは、数値型の列にNULLが含まれている場合、そのまま乗算すると結果もNULLになってしまいます。このような問題を回避するには、COALESCE() 関数を利用するのが効果的です。COALESCE()は、引数の中から最初に見つかった非NULLの値を返す関数で、NULLを別の値(ここでは「1」)に置き換えて計算できます。以下、実際の手順を見ていきましょう。1. サンプルテーブルを作成するまず、商品点数と金額を格納するテーブルを作成します。mysql> create table DemoTable1842   &nbs

  2. MySQLで重複しない日付(個別の値)を表示する方法

    MySQLでは、datetime型のカラムから「日付のみ」を基準に重複を排除してデータを取得したいケースがよくあります。例えば、同じ日に複数の注文や出荷記録がある場合、日付単位で1件だけ取り出したいときなどです。本記事では、GROUP BYとDATE()関数を組み合わせて、重複しない日付ごとのレコードを表示する方法を解説します。 1. サンプルテーブルを作成する まず、動作確認用のテーブルを作成しましょう。ここでは、出荷日時(ShippingDate)と顧客名(CustomerName)を持つテーブルを定義します。 mysql> create table DemoTable1996 (