MySQLで列名を「StudentName」から「FirstName」に変更する方法
MySQLで既存の列名を変更するには、ALTER文とCHANGE句を組み合わせて使用します。CHANGE句は、列名の変更だけでなく、データ型の変更も同時に行える便利な構文です。
まずは、サンプル用のテーブルを作成してみましょう。
mysql> create table DemoTable -> ( -> StudentName varchar(100), -> Age int -> ); Query OK, 0 rows affected (0.84 sec)
テーブル構造の確認
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)
ALTER文とCHANGE句で列名を変更する
それでは、「StudentName」を「FirstName」に変更するクエリを見ていきましょう。この例では、列名の変更と同時に、新しい列の追加も行っています。
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 column 変更前の列名 新しい列名 新しいデータ型 という記述形式です。ここでは、列名を「FirstName」に変更すると同時に、データ型もvarchar(100)からvarchar(200)へ拡張しています。また、AFTER句を使えば、新しい列を挿入する位置を指定することも可能です。
変更後のテーブル構造の確認
もう一度DESCコマンドで、テーブルの構造を確認してみましょう。
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)
まとめ
このように、ALTER文のCHANGE句を使えば、既存の列名を簡単に変更できます。出力結果から、「StudentName」が「FirstName」に変更され、データ型もvarchar(200)になっていることが確認できました。なお、MySQL 8.0以降ではRENAME COLUMN句も使用できるため、列名だけを変更したい場合によりシンプルな構文で記述することも可能です。
-
MySQLでVARCHAR型のカラムをNULL許容に変更する方法
MySQLでは、テーブルのカラム定義を後から変更できます。既存のVARCHAR型カラムをNULL値を許容する設定に変更したい場合は、ALTER TABLE文とCHANGE句を組み合わせて使用します。基本構文カラムをNULL許容に変更するには、以下の構文を使用します。ALTER TABLE テーブル名 CHANGE 変更前カラム名 変更後カラム名 データ型 NULL DEFAULT NULL;ポイントは、CHANGE句の後に「現在のカラム名」と「新しいカラム名」の両方を指定する必要がある点です。カラム名を変えない場合でも、同じ名前を2回記述します。また、データ型も改めて指定する必要があります。実
-
MySQLで予約語「from」を列名として使用する方法
MySQLで「from」を列名として使うには? MySQLでは「from」は予約語(リザーブドワード)として登録されているため、そのまま列名として使用するとエラーが発生します。しかし、バッククォート(`` ` ``)で囲むことで、予約語である「from」を列名として扱うことができます。 この記事では、実際にテーブルを作成し、「from」を列名としてデータの挿入や取得を行う手順を解説します。 1. バッククォートを使ってテーブルを作成する まず、列名「from」をバッククォートで囲んでテーブルを作成します。以下のSQLを実行してください。 mysql> create table Demo