既存のMySQLテーブルのカラム名を変更する方法
既存のMySQLテーブルでカラム(列)の名前を変更したい場合、ALTER TABLEコマンドにCHANGEキーワードを組み合わせて使用します。基本的な構文は以下のとおりです。
ALTER TABLE テーブル名 CHANGE 現在のカラム名 新しいカラム名 データ型;
カラム名のみを変更する例
たとえば、Studentテーブルの「Email」というカラム名を「Emailid」に変更するには、次のようにクエリを実行します。
mysql> Alter table Student CHANGE Email Emailid Varchar(30); Query OK, 5 rows affected (0.38 sec) Records: 5 Duplicates: 0 Warnings: 0
このクエリを実行することで、MySQLは「Email」カラムの名前を「Emailid」へと変更します。なお、CHANGEキーワードを使用する場合は、新しいカラム名とともにデータ型も必ず指定する必要がある点に注意してください。
カラム名とデータ型を同時に変更する例
CHANGEキーワードでは、カラム名の変更と同時に、データ型やサイズを同じものにしても異なるものにしても指定できます。以下の例では、カラム名を「Emailid」から「Mailid」に変更しつつ、データ型をvarchar(30)からchar(35)へ変更しています。
mysql> Alter table Student CHANGE Emailid Mailid char(35); Query OK, 5 rows affected (0.29 sec) Records: 5 Duplicates: 0 Warnings: 0
このように、上記のクエリによってMySQLはカラム名を「Emailid」から「Mailid」へ変更するとともに、データ型もvarchar(30)からchar(35)へと更新しました。
補足:RENAME COLUMNとの違い
MySQL 8.0以降では、データ型を変更せずにカラム名だけを変更したい場合、よりシンプルなRENAME COLUMN構文を使用することもできます。
ALTER TABLE Student RENAME COLUMN Email TO Emailid;
CHANGEはカラム定義全体を再指定する必要がありますが、RENAME COLUMNは名前の変更のみを行うため、意図しないデータ型の変更を防ぎたい場合に便利です。用途に応じて使い分けるとよいでしょう。
-
MySQLで列(カラム)を分割する方法!SUBSTRING_INDEX関数の使い方を徹底解説
MySQLで列を分割するには?SUBSTRING_INDEX関数の基本MySQLで1つの列に格納された文字列を区切り文字で分割したい場合、SUBSTRING_INDEX()関数を使用します。この記事では、アンダースコア(_)で区切られた氏名データを分割する具体例を通じて、その使い方をわかりやすく解説します。1. サンプルテーブルの作成まず、以下のコマンドでテーブルを作成します。mysql> create table DemoTable -> ( -> Name varchar(40) -> );Query OK, 0 rows affected (1.
-
PythonでMySQLのテーブルに新しい列(カラム)を追加する方法
既存のテーブルに後から新しい列を追加したい場面は少なくありません。例えば、「Students(学生)」というテーブルに「Name(名前)」「Age(年齢)」「Roll no(出席番号)」といった列があるとします。ここに、新しく「Address(住所)」という列を追加したい場合、どうすればよいのでしょうか。このようなときに活躍するのがALTERコマンドです。ALTERコマンドは、データベース内の列を変更・削除・更新するためのコマンドで、ADD句と組み合わせることで、テーブルに新しい列を追加することもできます。構文ALTER TABLE table_name ADD new_column_name