MySQLのALTER文の使い方!

今日の昼下がり、颯爽とMySQLの勉強を進めていた僕であったが、あろうことか恥ずかしいミスを起こしてしまっていた・・・

mysql> DESC user_info;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| name     | varchar(255) | YES  |     | NULL    |       |
| passwprd | varchar(255) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)

passwordがpasswprdになっている・・・ スライド見てる感じだとALTER文でなんとかなりそうなので調べてみた!

  1. テーブルのField名を変更する方法

(基本形)

ALTER TABLE テーブル名 CHANGE フィールド名 新フィールド名 データの型

*データの型もDESCコマンドで確認できる。大きく分けてint(数値)とvarchar(文字列)がある。

(今回の場合だと)

ALTER TABLE user_info CHANGE passwprd password varchar(255);

これで実際、ちゃんと修正できた!良かった〜

ついでにいくつか調べてみたのでまとめてみます。

2. テーブル名を変更する方法

(基本形)

ALTER TABLE テーブル名 RENAME 新テーブル名;

(自分でもやってみる)

mysql> ALTER TABLE user_info RENAME user_information;
Query OK, 0 rows affected (0.00 sec)

mysql> SHOW TABLES
    -> ;
+------------------+
| Tables_in_form   |
+------------------+
| user_information |
+------------------+
1 row in set (0.00 sec)

3. フィールドを追加する方法

(基本形) ALTER TABLE テーブル名 ADD フィールド名 データ型

(自分でもやってみる)

mysql> ALTER TABLE user_information ADD age int;
Query OK, 4 rows affected (0.00 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> DESC user_information;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| name     | varchar(255) | YES  |     | NULL    |       |
| password | varchar(255) | YES  |     | NULL    |       |
| age      | int(11)      | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
3 rows in set (0.00 sec)

  1. フィールドを削除する方法

(基本形)

ALTER TABLE テーブル名 DROP フィールド名

(自分でもやってみる)

mysql> ALTER TABLE user_information DROP age;
Query OK, 4 rows affected (0.01 sec)
Records: 4  Duplicates: 0  Warnings: 0

mysql> DESC user_information;
+----------+--------------+------+-----+---------+-------+
| Field    | Type         | Null | Key | Default | Extra |
+----------+--------------+------+-----+---------+-------+
| name     | varchar(255) | YES  |     | NULL    |       |
| password | varchar(255) | YES  |     | NULL    |       |
+----------+--------------+------+-----+---------+-------+
2 rows in set (0.00 sec)