MySQLでMODIFYの代わりに使える列変更用キーワードとは?CHANGEの使い方を解説
MySQLでは、既存テーブルの列を変更する際に、CHANGEキーワードを使用できます。CHANGEキーワードの大きな特徴は、列名とその定義(データ型・サイズ)の両方を同時に変更できる点です。なお、その構文はMODIFYキーワードを使ったALTER TABLE文とは少し異なるため注意が必要です。
CHANGEキーワードの基本構文
ALTER TABLE テーブル名 CHANGE 旧列名1 新列名1 データ型, CHANGE 旧列名2 新列名2 データ型 … CHANGE 旧列名N 新列名N データ型;
列名と定義を同時に変更する例
次の例では、ALTERコマンドでCHANGEキーワードを使い、Studentテーブルの「Rollno」列を「Id」に、「City」列を「Place」に、それぞれ名前とデータ型・サイズを変更しています。
mysql> ALTER TABLE Student CHANGE Rollno Id INT, CHANGE City Place VARCHAR(10);
Query OK, 5 rows affected (0.40 sec)
Records: 5 Duplicates: 0 Warnings: 0
列のサイズだけを変更したい場合
列名は変えずにサイズ(定義)だけを変更したい場合は、CHANGEキーワードの後に同じ列名を2回続けて記述し、その後に新しいデータ型とサイズを指定します。
mysql> ALTER TABLE Student CHANGE Email Email VARCHAR(30);
Query OK, 5 rows affected (0.33 sec)
Records: 5 Duplicates: 0 Warnings: 0
補足:MODIFYとの違い
MODIFYキーワードは列名を変更できず、定義のみを変更する際に使われます。一方、CHANGEキーワードは列名の変更も可能ですが、常に新しい列名を指定する必要がある点が異なります。用途に応じて使い分けるとよいでしょう。
-
【MySQL】別テーブルの列をGROUP BYして新しいテーブルを作成する方法
はじめに既存のテーブルの特定の列(カラム)に対して GROUP BY を実行し、その結果をもとに新しいテーブルを作成したい場合は、CREATE TABLE ... AS SELECT ステートメントが便利です。ここでは、国名が格納されたテーブルから重複を取り除いたデータを持つ新しいテーブルを作成する手順を、具体例とともに解説します。元となるテーブルの作成まず、サンプル用のテーブル「DemoTable1」を作成します。mysql> create table DemoTable1 -> (
-
MySQLでテーブルのカラム名(列名)を取得する構文とは?
MySQLでは、information_schema.columns テーブルを参照することで、指定したテーブルのカラム名(列名)を簡単に取得できます。データベースの構造を確認したい場合や、動的にカラム情報を取得したいアプリケーションを開発する際に非常に便利な方法です。カラム名を取得する基本構文テーブルのカラム名を取得するには、以下の構文を使用します。SELECT column_name FROM information_schema.columns WHERE table_schema = データベース名 AND table_name = テーブル名;table_schema にはデータベー