【MySQL】カラムの追加・変更・削除

〈 前提 〉
 
mysql>  SELECT * FROM items; 
と実行すると、下記のように表示されるテーブルを用意する。
+----+--------------+-------+----------+
| id | name         | price | category |
+----+--------------+-------+----------+
|  1 | にんじん     |    60 | 野菜     |
|  2 | バナナ       |   200 | 果物     |
|  3 | 牛乳         |   120 | 飲料     |
+----+--------------+-------+----------+
3 rows in set (0.00 sec)
 
 
 
カラムを追加する
 
公式:mysql> ALTER TABLE テーブル名 ADD COKUMN カラム名 データ型;
例:mysql> ALTER TABLE items ADD COKUMN stock INT;
 
mysql> SELECT * FROM items;
+----+--------------+-------+----------+-------+
| id | name         | price | category | stock |
+----+--------------+-------+----------+-------+
|  1 | にんじん     |    60 | 野菜     |  NULL |
|  2 | バナナ       |   200 | 果物     |  NULL |
|  3 | 牛乳         |   120 | 飲料     |  NULL |
+----+--------------+-------+----------+-------+
3 rows in set (0.00 sec)
 
 
このようにカラムを追加すると、中身がNULLのカラムが追加される。
そこでUPDATEクエリを使って値を設定する。
 
mysql>  UPDATE items SET stock = 100 WHERE id = 1;
mysql>  UPDATE items SET stock = 150 WHERE id = 2;
mysql>  UPDATE items SET stock = 80 WHERE id = 3;
mysql>  SELECT * FROM items;
 
+----+--------------+-------+----------+-------+
| id | name         | price | category | stock |
+----+--------------+-------+----------+-------+
|  1 | にんじん     |    60 | 野菜     |   100 |
|  2 | バナナ       |   200 | 果物     |   150 |
|  3 | 牛乳         |   120 | 飲料     |    80 |
+----+--------------+-------+----------+-------+
3 rows in set (0.00 sec)
 
 
 
カラム名を変更する
 
カラム名を変更するクエリでは、カラムのデータ型を入力する必要がある。
まずはデータ型を確認するため以下のクエリを実行する。
Typeの列がデータ型を表している。
 
mysql> DESCRIBE items;
+----------+---------+------+-----+---------+----------------+
| Field    | Type    | Null | Key | Default | Extra          |
+----------+---------+------+-----+---------+----------------+
| id       | int(11) | NO   | PRI | NULL    | auto_increment |
| name   | text    | YES  |     | NULL    |                |
| price    | int(11) | YES  |     | NULL    |                |
| category | text    | YES  |     | NULL    |                |
| stock    | int(11) | YES  |     | NULL    |                |
+----------+---------+------+-----+---------+----------------+
5 rows in set (0.00 sec)
 
 
カラム名変更のクエリを実行する。
 
公式:ALTER TABLE テーブル名 CHANGE COLUMN 旧カラム名カラム名 データ型;
例:ALTER TABLE items CHANGE COLUMN price cost INT;
 
 
 
カラムを削除する
 
公式:ALTER TABLE テーブル名 DROP COLUMN 削除するカラム名;
例:ALTER TABLE items DROP COLUMN category;