ここではMySQLでのカラムの操作について解説していきます。
tb1
id | name | age |
INT | VARCHAR(10) | INT |
今回はこのテーブルを例として解説していきます。
データ型の変更
ALTER TABLE tb1 MODIFY id VARCHAR(10);
書式
ALTER TABLE テーブル名 MODIFY カラム名 データ型;
実行後
id | name | age |
VARCHAR(10) | VARCHAR(10) | INT |
このようにカラム名とデータ型を指定すればデータ型の変更が可能です。
しかし、カラムにデータが存在する場合「VARCHAR」から「INT」へなどと変更は行うべきではありません。
カラムの追加
ALTER TABLE tb1 ADD regi DATETIME;
書式
ALTER TABLE テーブル名 ADD カラム名 データ型;
実行後
id | name | age | regi |
INT | VARCHAR(10) | INT | DATETIME |
これでtb1に日付、時刻で登録日を入力できるカラムが追加されました。
カラムを先頭に追加
ALTER TABLE tb1 ADD regi DATETIME FIRST;
カラムの追加で使用したコマンドの最後に半角スペースで「FIRST」を付け加えれば、追加するカラム「regi」が一番最初に追加されます。
カラムを自由な位置に追加
ALTER TABLE tb1 ADD regi DATETIME AFTER id;
カラムの追加で使用したコマンドの最後に半角スペースで「AFTER カラム名」を付け加えれば、指定したカラム名の後にカラム「regi」が追加されます。
カラムの名前とデータ型をまとめて変更
ALTER TABLE tb1 CHANGE name lastname TEXT;
書式
ALTER TABLE テーブル名 CHANGE 変更前のカラム名 変更後のカラム名 変更後のデータ型;
実行後
id | lastname | age |
INT | TEXT | INT |
今回の変更では「VARCHAR(10)」から「TEXT」にデータ型を変更しただけなので、もともとのデータには影響はありませんが、「TEXT」から「VARCHAR(10)」と変更してしまうと、元のデータが10文字に切れてしまうので注意して変更するようにしてください。
カラムの削除
ALTER TABLE tb1 DROP id;
書式
ALTER TABLE テーブル名 DROP 削除するカラム名;
実行結果
name | age |
VARCHAR(10) | INT |
データベースやテーブルやカラム何かを削除するときには「DROP」コマンドを使います。
カラム名を削除すると当然のことですが中のデータも削除されるので注意が必要です。