ALTER TABLE の使い方
表の形を変える
書き方
ALTER TABLE 表 ADD COLUMN 列 型; ALTER TABLE 表 DROP COLUMN 列; ALTER TABLE 表 RENAME COLUMN 古 TO 新; ALTER TABLE 表 ADD CONSTRAINT 名前 …;
列の追加・削除・名前の変更・制約の追加ができます。
よく使うオプション
| オプション | 意味 |
|---|---|
ADD COLUMN 列 型 | 列を加える |
DROP COLUMN 列 | 列を消す(中のデータも消える) |
RENAME COLUMN 古 TO 新 | 列の名前を変える |
ALTER COLUMN 列 TYPE 型 | 列の型を変える(PostgreSQL) |
ADD CONSTRAINT 名前 … | 制約を加える |
RENAME TO 新しい名前 | 表の名前を変える |
例
ALTER TABLE customers ADD COLUMN email VARCHAR(100);ALTER TABLE客の表にメールアドレスの列を加えます。今ある行の値は NULL になります。
ALTER TABLE products ADD COLUMN stock INTEGER NOT NULL DEFAULT 0;
在庫の列を加え、今ある行には 0 を入れます。NOT NULL の列を加えるときは DEFAULT も書きます。
ALTER TABLE customers RENAME COLUMN city TO town;
列の名前を city から town に変えます。中のデータはそのままです。
ALTER TABLE orders ADD CONSTRAINT orders_total_check CHECK (total >= 0);
金額がマイナスにならない決まりを、後から加えます。今ある行が決まりに合わないとエラーになります。
よくある間違い・注意
- DROP COLUMN で消した列のデータは戻せません。
- 型を変える書き方はデータベースで違います(Oracle は MODIFY、MySQL は MODIFY COLUMN)。
- 大きな表の ALTER は、終わるまで表をロックすることがあります。
実際に打って練習する
SQL コースの Lv43「表の形を変える ALTER TABLE」で覚えます。ブラウザの中のシミュレーターで、本物と同じように打って確かめられます。
Lv1〜3 は、登録不要・無料で遊べます(それより先はブロンズ以上のプランで遊べます)。