MySQL

【MySQL】作成したテーブルにカラムを追加・削除・変更する方法

MySQLで作成したテーブルのスキーマを変更するためには、

カラムの追加削除変更(型・並び順番)があります

この記事では、これらの操作を実行する方法について説明します。

テーブルにカラムを追加する

テーブルに新しいカラムを追加するには、ALTER TABLEステートメントとADDを使用します。

ALTER TABLE テーブル名
ADD カラム名 型;

以下は、usersテーブルにageカラムを追加する例です。

ALTER TABLE users
ADD age INT;

上記の例では、usersテーブルにageという名前のINT型のカラムを追加しています。

また、デフォルト値を指定することができます。

以下は、usersテーブルにemailカラムを追加し、NULLを許容しない設定を追加しています。

ALTER TABLE users
ADD email VARCHAR(255) NOT NULL DEFAULT '';

上記の例では、usersテーブルにemailという名前のVARCHAR(255)型のカラムを追加し、

NULLを許容しないように設定し、デフォルト値として空文字列を指定しています。

テーブルからカラムを削除する

テーブルからカラムを削除するには、ALTER TABLEステートメントとDROP COLUMNを使用します。

ALTER TABLE テーブル名
DROP COLUMN カラム名;

以下は、usersテーブルからageカラムを削除する例です。

ALTER TABLE users
DROP COLUMN age;

上記の例では、usersテーブルからageカラムを削除しています。

テーブルのカラムを変更する

テーブルのカラムを変更するには、ALTER TABLEステートメントとMODIFY COLUMNを使用します。

ALTER TABLE テーブル名
MODIFY COLUMN カラム名 型;

以下は、usersテーブルのemailカラムをVARCHAR(320)に変更する例です。

ALTER TABLE users
MODIFY COLUMN email VARCHAR(320);

上記の例では、usersテーブルのemailカラムの型をVARCHAR(320)に変更しています。

また、デフォルト値を変更することもできます。

以下は、usersテーブルのemailカラムのNULLを許容する設定を追加し、デフォルト値をNULLに変更する例です。

ALTER TABLE users
MODIFY COLUMN email VARCHAR(320) DEFAULT NULL;

上記の例では、usersテーブルのemailカラムのNULLを許容する設定を追加し、デフォルト値をNULLに変更しています。

カラムの名前を変更する

テーブルのカラム名を変更するには、ALTER TABLEステートメントを使用します。

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

以下は、usersテーブルのemailカラムの名前をemail_addressに変更する例です。

ALTER TABLE users
CHANGE COLUMN email email_address VARCHAR(320);

上記の例では、usersテーブルのemailカラムの名前をemail_addressに変更しています。また、カラムの型をVARCHAR(320)に変更しています。

カラムの順序を変更する

指定カラムの後に移動する

テーブルのカラム順序を変更するには、ALTER TABLEステートメントとAFTERを使用します。

ALTER TABLE テーブル名
MODIFY COLUMN カラム名 型 AFTER カラム名;

以下は、usersテーブルのemail_addressカラムをuser_idの後ろに移動する例です。

ALTER TABLE users
MODIFY COLUMN email_address VARCHAR(320) AFTER user_id;

一番上に移動する

テーブルのカラム順序を変更するには、ALTER TABLEステートメントとFIRSTを使用します。

ALTER TABLE テーブル名
MODIFY COLUMN カラム名 型 FIRST;

以下は、usersテーブルのemail_addressカラムを先頭に移動する例です。

ALTER TABLE users
MODIFY COLUMN email_address VARCHAR(320) FIRST;

2番目以降はSECONDなどで指定することはできません。AFETRを使って指定しましょう。

カラムのデータ型を変更する

テーブルのカラムのデータ型を変更するには、ALTER TABLEステートメントを使用します。

ALTER TABLE テーブル名 
MODIFY COLUMN カラム名 型;

以下は、usersテーブルのageカラムのデータ型をVARCHAR(3)に変更する例です。

ALTER TABLE users 
MODIFY COLUMN age VARCHAR(3);

上記の例では、usersテーブルのageカラムのデータ型をVARCHAR(3)に変更しています。

最後に

以上が、MySQLでテーブルスキーマを変更するための方法です。

テーブルスキーマの変更を行う場合は、データのバックアップを取得してから行うことをお勧めします。

-MySQL