カラムをSQLで変更する方法

テーブルのカラムの変更をcli操作で実行したので方法をまとめます。


まずホームディレクトリからMYSQLに接続します。**-u rootというオプションで、ユーザーは「ルート」でログインするという意味になります。**
ここでいうルートとは、MySQLであらかじめ用意されているユーザーのことです。

```

% cd

% mysql -u root

```

以下のように表示されていればmysqlに接続ができた状態になっています。


```

% mysql -u root
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 428
Server version: 5.6.47 Homebrew

Copyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> 

```


次に使用するデータベース選択します。

```
mysql> use sake_with_me_development;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
mysql> 

```


※sql文に関しては最後に`;`をつけることを忘れないように気をつけてください。


では次にカラムの内容を見ていきます。

```
mysql> show columns from sakes;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| name        | varchar(255) | NO   |     | NULL    |                |
| rice_rate   | varchar(255) | NO   |     | NULL    |                |
| sake_degree | varchar(255) | NO   |     | NULL    |                |
| type_id     | int(11)      | NO   |     | NULL    |                |
| degre      | varchar(255) | NO   |     | NULL    |                |
| company     | varchar(255) | NO   |     | NULL    |                |
| rice        | varchar(255) | YES  |     | NULL    |                |
| user_id     | bigint(20)   | NO   | MUL | NULL    |                |
| created_at  | datetime(6)  | NO   |     | NULL    |                |
| updated_at  | datetime(6)  | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
11 rows in set (0.00 sec)

```

degreをdegreeに変更します。

テーブル内容を変更するには`ALTER TABLE文`を使います・

構文はこちらです。

```
テーブル名 CHANGE 古いカラム名 新しいカラム名 新しいカラムの型;

```

なので。。。

```
mysql> ALTER TABLE　sakes CHANGE degre degree int;
Query OK, 0 rows affected (0.00 sec)
Records: 0  Duplicates: 0  Warnings: 0


```




```
mysql> show columns from sakes;
+-------------+--------------+------+-----+---------+----------------+
| Field       | Type         | Null | Key | Default | Extra          |
+-------------+--------------+------+-----+---------+----------------+
| id          | bigint(20)   | NO   | PRI | NULL    | auto_increment |
| name        | varchar(255) | NO   |     | NULL    |                |
| rice_rate   | varchar(255) | NO   |     | NULL    |                |
| sake_degree | varchar(255) | NO   |     | NULL    |                |
| type_id     | int(11)      | NO   |     | NULL    |                |
| degree      | int(11)      | NO   |     | NULL    |                |
| company     | varchar(255) | NO   |     | NULL    |                |
| rice        | varchar(255) | YES  |     | NULL    |                |
| user_id     | bigint(20)   | NO   | MUL | NULL    |                |
| created_at  | datetime(6)  | NO   |     | NULL    |                |
| updated_at  | datetime(6)  | NO   |     | NULL    |                |
+-------------+--------------+------+-----+---------+----------------+
11 rows in set (0.00 sec)

```


無事変更できました。