
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でテーブルスキーマを変更するための方法です。
テーブルスキーマの変更を行う場合は、データのバックアップを取得してから行うことをお勧めします。