· 

MySQLでカラムを追加・変更・削除しよう

MySQLでカラムを追加・変更・削除しよう

目安時間:30分

 

この記事は、MySQLの以下の操作について説明します。
  • カラムを追加する操作
  • カラム名を変更する操作
  • カラムを削除する操作
今日はMySQLのカラム操作について学んでいこう。
カラム操作を学べば、開発の途中でテーブルのカラムを追加したくなったり、変更したくなったりした時にも安心じゃ。
そうですね、カラム操作できるようになりたいです!

 

この記事を読む前に

カラム操作について学ぶためには、以下の知識や開発環境が必要になるぞ。もしまだ準備ができていない場合は事前に確認するのじゃ。
はい、わかりました!

1. データを準備しよう

まずは何から始めればいいですか?
そうじゃな。実際にカラムを操作しながら学ぶために、まずはわんこのローカル環境に必要なデータを準備していこう。
はい、頑張ります!

準備するデータベースを確認しよう

はじめに、準備するデータベースの確認を行います。この記事では、スーパーマーケット(shop_appデータベース)の商品データ管理(itemsテーブル)を例にしてカラム操作を説明していきます。

 

準備するデータベースおよびテーブルの構造は以下になります。 

データ準備の手順を確認しよう

以下の手順でデータを準備していきましょう。
  1. MySQLにログインする
  2. データベースを作成する
  3. テーブルを作成する
  4. データを登録する

MySQLにログインしよう

データを準備するにはMySQLにログインする必要がありますので、MySQLを起動し、ログインしましょう。
もしMySQLの起動方法やログインの仕方がわからない場合は、上記の「この記事を読む前に」に載せている記事を確認するのじゃ。
ログインできたら、必要なデータベースやテーブル、データを準備していきましょう。

データベースを作成しよう

まずは先ほど確認したshop_appデータベースを作成していきます。
次のクエリを入力し、エンターキーを押してください。
CREATE DATABASE shop_app;
Query OKと表示されれば、成功です。

 

実際にshop_appデータベースが作成できたかを確認しましょう。
次のクエリを実行して、データベースの一覧を表示してください。
SHOW DATABASES;
表示された一覧にshop_appという名前のデータベースが含まれていれば、成功です。

 

次のクエリを実行して、データベースを選択してください。
USE shop_app;
Database changedと表示されれば、データベースの選択が完了です。

テーブルを作成しよう

shop_appデータベースを作成できたので、このデータベースにitemsテーブルを作成しましょう。
  • Macの場合は、次のクエリを実行してください。
CREATE TABLE items(id INT AUTO_INCREMENT, name TEXT, price INT, category TEXT, PRIMARY KEY(id));
  • Windowsの場合は、次のクエリを実行してください。
CREATE TABLE items(id INT AUTO_INCREMENT, name TEXT, price INT, category TEXT, PRIMARY KEY(id)) DEFAULT CHARSET=utf8;
Query OKと表示されれば成功です。

 

実際にテーブルが作成できたかを確認しましょう。
次のクエリを実行して、テーブルの一覧を表示してください。
SHOW TABLES;
itemsという名前のテーブルが表示されれば、成功です。
CREATE DATABASEクエリやSHOWクエリ、CREATE TABLEクエリについては、上記の「この記事を読む前に」に載せている記事で紹介しているぞ。

データを作成しよう

最後に、itemsテーブルにデータを3件登録しましょう。 以下の3つのクエリを実行してください。
INSERT INTO items(name, price, category) VALUES ('にんじん', 60, '野菜');
INSERT INTO items(name, price, category) VALUES ('バナナ', 200, '果物');
INSERT INTO items(name, price, category) VALUES ('牛乳', 120, '飲料');
それぞれQuery OKと表示されれば成功です。

 

実際にデータが作成できたかを確認しましょう。
次のSELECTクエリを実行してください。
SELECT * FROM items;

 

画像のように3つのデータが登録されていればデータの準備は完了です。 

 

データの準備ができました!

 

よくやったな、それでは次の章からカラム操作を一緒に学んでいこう。

2. カラムを追加しよう

まずはカラムを追加する方法を見ていくぞ。
はい。どんなカラムを追加しますか?
そうじゃな。では今回はstock(商品の在庫数)を管理する必要が出てきたと仮定して、itemsテーブルにstockカラムを追加していこう。

カラム追加の手順を確認しよう

以下の手順でカラムを追加していきましょう。
  1. 現在のテーブルを確認する
  2. カラムを追加する
  3. カラム追加後のテーブルを確認する

現在のテーブルを確認する

カラムを追加する前に、現在のテーブルを一度確認しておきましょう。
次のクエリを実行してください。

 

SELECT * FROM items;

カラムを追加する

実際にカラムを追加しましょう。

 

今回のようにカラムを追加したい場合は、下の画像のようにしましょう。在庫数は数字(整数)で表すことができるので、クエリ中のデータ型はINTにします。
それでは実際に次のクエリを実行してみましょう。
ALTER TABLE items ADD COLUMN stock INT;
実行後に、Query OKと表示されれば成功です。

カラム追加後のテーブルを確認する

itemsテーブルにstockカラムを追加できたかを確認しましょう。
次のクエリを実行して、カラムが追加されていることを確認してください。

 

SELECT * FROM items;
NULLと表記されているのはstockカラムの値が未設定であることを表しています。
UPDATEクエリを使って、実際に値を設定してみましょう。今回は、idカラムが「1」のデータのstockカラム(在庫数)を「100」に設定してみます。
次のクエリを実行してください。
UPDATE items SET stock = 100 WHERE id = 1;
実行後に、Query OKと表示されれば成功です。

 

再びテーブルの中を確認してみましょう。
次のクエリを実行してください。
SELECT * FROM items;

 

画像のようにidカラムが「1」のデータの在庫数が設定されていれば成功です。 
残りのidカラムが「2」と「3」のデータの在庫数も設定してしまいましょう。
次のクエリを実行してください。
UPDATE items SET stock = 150 WHERE id = 2;
UPDATE items SET stock = 80 WHERE id = 3;
実行後に、Query OKと表示されれば成功です。

 

再びテーブルの中を確認してみましょう。
次のクエリを実行してください。
SELECT * FROM items;

 

idカラムが「2」と「3」のデータにも在庫数が設定されていれば、カラム追加は完了です。

3. カラム名を変更しよう

カラム追加ができました!
よくやったな。では今度はカラム名を変更する方法を見ていこう。
今回管理したかったのは、実はprice(値段)ではなくcost(原価)だったと仮定して、itemsテーブルのpriceカラムをcostというカラム名に変更していくぞ。
わかりました。頑張ります!

カラム名変更の手順を確認しよう

以下の手順でカラム名を変更していきましょう。
  1. 現在のテーブルを確認する
  2. 変更するカラムのデータ型を確認する
  3. カラム名を変更する
  4. カラム名変更後のテーブルを確認する

現在のテーブルを確認する

カラム名を変更する前に、現在のテーブルを確認しておきましょう。
次のクエリを実行してください。

 

SELECT * FROM items;

変更するカラムのデータ型を確認する

カラム名を変更するクエリでは、カラムのデータ型を入力する必要があります。priceカラムのデータ型を確認して同じデータ型を指定できるようにしましょう。
次のクエリを実行して、テーブル情報を確認してください。
DESCRIBE items;

 

Typeと書いてある列が、データ型を表しています。画像のように、priceカラムのデータ型はINTです。 

カラム名を変更する

データ型の確認ができたので、priceカラムをcostという名前に変更してみましょう。

 

カラム名を変更するには下の画像のようにします。 
それでは実際に次のクエリを実行してみましょう。
ALTER TABLE items CHANGE COLUMN price cost INT;
実行後、Query OKと表示されれば成功です。

カラム名変更後のテーブルを確認する

itemsテーブルのpriceカラムがcostカラムに変更できたかを確認しましょう。
次のクエリを実行してください。

 

SELECT * FROM items;

4. カラムを削除しよう

よし、カラム名の変更もできました!
いよいよこれで最後じゃ。カラムを削除する方法を見ていこう。間違えたり、不要になったりしたカラムがあるときに利用するといいぞ。
間違えることもありますもんね!
今回はcategory(商品の種類)が不要になったと仮定して、itemsテーブルのcategoryというカラムを削除していこう。

カラム削除の手順を確認しよう

以下の手順でカラムを削除していきましょう。
  1. 現在のテーブルを確認する
  2. カラムを削除する
  3. カラム削除後のテーブルを確認する

現在のテーブルを確認する

まずは、現在のカラムを確認しておきます。
次のクエリを実行してください。

 

SELECT * FROM items;

カラムを削除する

現在のテーブルを確認できたので、itemsテーブルのcategoryカラムを削除していきましょう。
カラムを削除すると、そのカラムに登録されているデータも一緒に削除されてしまうぞ。また、一度削除すると元に戻すことができないので、本当に消して良いか十分に確認してから行うのじゃぞ。
気をつけます!

 

カラムを削除するには、下の画像のようにします。 

 それでは実際に次のクエリを実行してみましょう。

ALTER TABLE items DROP COLUMN category;
実行後、Query OKと表示されれば成功です。

カラム削除後のテーブルを確認する

categoryカラムが削除できたかを確認しましょう。
次のクエリを実行してください。

 

SELECT * FROM items;

5. うまくいかない時のチェックリスト

うまくいかない場合は、以下のような間違いがないかチェックしてみましょう。

 

  • 記事で指定したコードが貼り付けられていない
  • 入力したファイル名やソースコードなどに誤字脱字がある
  • コマンドの内容や実行している場所が違う