![](https://engineer-jose-blog.com/wp-content/uploads/2023/02/MySQL_circle.png)
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でテーブルスキーマを変更するための方法です。
テーブルスキーマの変更を行う場合は、データのバックアップを取得してから行うことをお勧めします。