ALTER TABLE【MySQL(MariaDB)】

ALTER TABLE【MySQL(MariaDB)】

ALTER TABLEの使い方をすぐに忘れてしまうので、メモとして残しておきます。
参考にしてください。

テーブル名を変更

ALTER TABLE テーブル名 RENAME 新テーブル名;
show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| test_table        |
+-------------------+

ALTER TABLE test_table RENAME sample_table;

show tables;
+-------------------+
| Tables_in_test_db |
+-------------------+
| sample_table      |
+-------------------+

カラム名を変更

ALTER TABLE テーブル名 CHANGE 旧カラム名 新カラム名 新カラム定義;
desc sample_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| no    | int(11)     | YES  |     | NULL    |       |
| name  | varchar(32) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

ALTER TABLE sample_table CHANGE no code int(11);

desc sample_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| code  | int(11)     | YES  |     | NULL    |       |
| name  | varchar(32) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

カラムを追加

ALTER TABLE テーブル名 ADD 追加カラム名 追加カラム定義;

ALTER TABLE テーブル名 ADD 追加カラム名1 追加カラム定義1,
ADD 追加カラム名2 追加カラム定義2;

desc sample_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| code  | int(11)     | YES  |     | NULL    |       |
| name  | varchar(32) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

ALTER TABLE sample_table ADD mail varchar(128);

ALTER TABLE sample_table ADD tel varchar(16)
, ADD fax varchar(16);

desc sample_table;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| code  | int(11)      | YES  |     | NULL    |       |
| name  | varchar(32)  | YES  |     | NULL    |       |
| mail  | varchar(128) | YES  |     | NULL    |       |
| tel   | varchar(16)  | YES  |     | NULL    |       |
| fax   | varchar(16)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

カラムを削除

ALTER TABLE テーブル名 DROP COLUMN カラム名;

ALTER TABLE テーブル名 DROP COLUMN カラム名1,
DROP COLUMN カラム名2;

desc sample_table;
+-------+--------------+------+-----+---------+-------+
| Field | Type         | Null | Key | Default | Extra |
+-------+--------------+------+-----+---------+-------+
| code  | int(11)      | YES  |     | NULL    |       |
| name  | varchar(32)  | YES  |     | NULL    |       |
| mail  | varchar(128) | YES  |     | NULL    |       |
| tel   | varchar(16)  | YES  |     | NULL    |       |
| fax   | varchar(16)  | YES  |     | NULL    |       |
+-------+--------------+------+-----+---------+-------+

ALTER TABLE sample_table DROP COLUMN tel;

ALTER TABLE sample_table DROP COLUMN fax,
 DROP COLUMN mail;

desc sample_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| code  | int(11)     | YES  |     | NULL    |       |
| name  | varchar(32) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

カラムの定義の変更

ALTER TABLE テーブル名 MODIFY カラム名 新カラム型;

ALTER TABLE テーブル名 MODIFY カラム名1, 新カラム型1,
MODIFY カラム名2 新カラム型2;

desc sample_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| code  | int(11)     | YES  |     | NULL    |       |
| name  | varchar(32) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+

ALTER TABLE sample_table MODIFY code int(8);

ALTER TABLE sample_table MODIFY code int(7),
 MODIFY name varchar(64);

desc sample_table;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| code  | int(7)      | YES  |     | NULL    |       |
| name  | varchar(64) | YES  |     | NULL    |       |
+-------+-------------+------+-----+---------+-------+