MySQLでALTER TABLEを使ってテーブル構造を変更する方法【初心者向け】

MySQLで【ALTER TABLE】を使ってテーブル構造を変更する方法を初心者向けに解説した記事です。実際のテーブルを使って「テーブル名を変更」「フィールドを追加」「フィールドの変更」「フィールドを削除」の4つについて紹介します。

テックアカデミーマガジンは受講者数No.1のプログラミングスクール「テックアカデミー」が運営。初心者向けにプロが解説した記事を公開中。現役エンジニアの方はこちらをご覧ください。 ※ アンケートモニター提供元:GMOリサーチ株式会社 調査期間:2021年8月12日~8月16日  調査対象:2020年8月以降にプログラミングスクールを受講した18~80歳の男女1,000名  調査手法:インターネット調査

監修してくれたメンター

nakamoto

アジマッチ有限会社代表取締役社長。書籍化歓迎。対応業務:PHP(Laravel)、機械学習、Vue.js、LAMP・AWS、越境EC、CTO、エンジニア採用、CTO、経営者の不安解決コンサルティング。

MySQLの初心者向けに、基本的な使い方を解説する記事です。

今回は、ALTER TABLEを使ってテーブル構造に変更・追加・削除といった操作を加える方法について、テックアカデミーのメンター(現役エンジニア)が実際のコードを使用して初心者向けに解説します。

ALTER TABLEを使うと、MySQLの既存のテーブルの定義(構造)を変更できます。

実務でも、ALTER TABLEを使ってテーブル構造に変更・追加・削除し、Webアプリケーションのデータ処理を行うので、ぜひ学習してみてください。

目次

1時間でできる無料体験!

そもそもPHPについてよく分からないという方は、PHPとは何なのか解説した記事を読むとさらに理解が深まります。

 

今回の記事の内容は動画でもご覧いただけます。
テキストよりも動画の方が理解しやすいという場合はぜひご覧ください。

 

今回は、このようなデータの入ったuserというテーブルをもとに解説を進めます。

スクリーンショット 2015-01-19 20.05.55

 

大石ゆかり

田島メンター!テーブルを作成して、データを追加できるようになったんですが、作成した後にテーブルの変更ってできるんですか?

田島悠介

作成したテーブルの内容の変更やフィールドの削除などできるんだ。

大石ゆかり

後からでも全部作り直せる感じでしょうか?

田島悠介

そうだね。SQLiteなど簡易なデータベースは注意が必要だけど、普通のデータベースは後からでも変更できるんだ。変更の仕方を見てみよう!

 

テーブル名を変更する際に利用するコマンド

テーブル名を変更する際には次のように操作します。

テーブル名を表示するコマンドは必須ではありませんが、名前が変更できたかを確認する方が安心です。

  1. テーブル名を表示
  2. テーブル名を変更

 

テーブル名一覧を表示するコマンド

テーブル名を変更する場合、show tables;を利用します。

show tables;

 

テーブル名を変更するコマンド

テーブル名を変更する場合、alter tableを利用します。

alter table  テーブル名 rename  新テーブル名;

 

テーブルの中のデータを表示するコマンド

テーブルの中のデータを表示する場合、select を利用します。

select * from テーブル名;

 

データ型を確認するコマンド

テーブルのデータ型を確認するためには、descを利用します。

desc テーブル名;

 

ALTER TABLEを使ってテーブル名を変更してみよう

実際にALTER TABLEを使ってテーブル名を変更してみましょう。

 

テーブル名を表示

まずはshow tables;を使ってテーブル名を表示させておきましょう。

コマンド

 show tables;

実行結果

スクリーンショット 2015-01-19 21.10.44

解説

show tables;というコマンドを実行すると、userというテーブルが表示されました。

 

テーブル名を変更

alter tableを使って、usersという名前に変えてみたいと思います。

コマンド

alter table user rename users;

実行結果

alter table user rename users;

解説

alter table user rename users;というコマンドで、userテーブルをusersテーブルに名称変更しました。

「Query OK」と表示されれば変更完了です。

 

テーブル名を再確認のため表示

show tablesを利用して、再度テーブル名を確認します。

コマンド

show tables;

実行結果

show tables;

解説

userからusersに変わっています。

これでテーブル名の変更ができました。

 

[PR] プログラミング入門で挫折しない学習方法を動画で公開中

 ALTER TABLEを使ってフィールドを追加する方法

テーブルの中にはいくつかフィールドがありますが、新しいフィールドを追加できます。

フィールドを追加するためのコマンドは次の通りです。

alter table テーブル名 add フィールド名 データ型;

 

テーブルの中のデータを表示

現在のテーブルの中身を表示させます。

コマンド

select * from users;

実行結果

スクリーンショット 2015-01-19 21.50.10

解説

select * from users;では、テーブル名がusersのテーブルの中身を表示しています。

id・username・organization_id・email・password・login_num と、6つのフィールドがあります。

 

フィールドを追加する

フィールドを追加する方法を解説します。

コマンド

alter table users add age int;

実行結果

 

alter table users add age int;

alter table users add age int;では、ユーザーの年齢として、ageというフィールドを追加します。
age int;では、ageは整数値を入れるため、データ型はint型を使うという意味です。

int型というのは、整数を意味します。

 

テーブルの中身を再度表示する

テーブルの中身を再度確認してみます。

コマンド

select * from users;

実行結果

select * from users;

解説

select * from users;で、usersテーブルの中身が表示されました。

今回の実行結果では、ageフィールドが追加されています。

NULLとは、データが何も入っていないという意味です。

 

コラム

実は私も!?独学で損する人の特徴

「スクールは高いから独学で成功する」という気持ちの方は多いと思います。
もちろんその方が金額は低く抑えられるでしょう。
ただ 独学には向き不向きがあり、実はスクールが向いている人も大勢います。

そんな方のために参考として、 テックアカデミー卒業生がスクールを選んだ理由 をご紹介します。

  • ・困って挫折しそうなときに、質問や相談できる相手がいる環境で学んでいきたいなと思った
  • ・わかった気になっているだけだったので、自分を追い込む環境に置いた方がいいと感じた
  • ・スクールのカリキュラムで市場に求められるスキルを学ぶべきと思った

少しでも当てはまる部分があれば、 スクールが向いているかもしれません。
お試しのつもりで、まずは一度 無料相談 に参加してみませんか?

現役エンジニア・デザイナーに何でも気軽に相談できる30分すべて無料で できます。
無理な勧誘は一切ない ので、お気軽にご参加ください。

今なら相談した方限定の割引・参加特典付き! 無料相談はこちら

ALTER TABLEを使ってフィールドの変更をする方法

テーブル名だけではなく、フィールド1つ1つの名前も変更できます。

フィールド名を変更するためのコマンドは次の通りです。

alter table テーブル名 change フィールド名 新フィールド名 データ型;

 

ageフィールドをagesフィールドに変更してみる

ここではageをagesにしてみます。

コマンド

alter table users change age ages int;

実行結果

スクリーンショット 2015-01-21 17.20.01

解説

alter table users change age ages int;では、usersテーブルのageフィールドをagesフィールドに変更しています。

ages int;では、データ型int型を使うという意味です。

int型というのは、整数を意味します。

 

変更後の内容を確認

実際に変わっているか確認しましょう。

コマンド

select * from users;

実行結果

スクリーンショット 2015-01-21 17.20.35

解説

select * from users;では、usersテーブルの中身を表示しています。

agesに変わっていますね。

これでフィールドの変更ができました。

 

データ型だけ変更する方法を実際に書いてみよう

ここでは、フィールド名を変更せずにデータ型だけを変更できます。

その場合は、changeのかわりにmodifyを使って次のように書きます。

alter table テーブル名 modify フィールド名 データ型;

 

データ型を確認

変えたいフィールドのデータ型がわからない場合は「desc テーブル名」のコマンドで確認できます。

コマンド

desc users;

実行結果

desc users;

解説

agesフィールドはint型のフィールドであることを確認できました。

NULLというのはデータが入っていない状態です。

NULLがYESというのは、標準状態でデータが入っていないのが普通ということを意味します。

 

NULLを利用しないように実際に変更してみよう

ここではnot nullの制約をつけ、いずれの場合もNULLが使われないようなデータ型に変更したいと思います。

コマンド

alter table users modify ages int not null;

解説

alter table users modify ages int not null;では、データ型を変更するコマンドです。

基本的にはint型なのですが、not nullの部分でNULLを利用しないように指定しました。

 

再度確認表示を行う

descでもう一度確認しましょう。

コマンド

desc users;

実行結果

NO

解説

agesのフィールド名はそのままに、NULLの項目がYESからNOへ変わり、NULLが表示されない設定に変更されました。

 

テーブルの中身を再度確認してみよう

usersテーブルをもう一度確認します。

コマンド

select * from users;

実行結果

select * from users;

解説

agesの初期値に、NULLではなく0が入っています。

 

ALTER TABLEを使ってフィールドを削除する方法

ここでは、フィールドを削除する方法をご紹介します。

削除するときは、dropを使って次のように書きます。

alter table テーブル名 drop フィールド名;

 

ALTER TABLEを使ってフィールドを削除してみる

agesのフィールドを削除してみましょう。

コマンド

alter table users drop ages;

実行結果

スクリーンショット 2015-01-21 18.03.39

解説

Query OKと表示されたら、実行できています。

 

usersテーブルを確認

usersテーブルを確認しましょう。

コマンド

select * from users;

実行結果

スクリーンショット 2015-01-21 18.03.59

解説

select * from users;でusersテーブルを確認すると、agesのフィールドが削除できています。

 

1時間でできる無料体験!

まとめ

MySQLでALTER TABLEを使ってテーブル構造を変更する方法は以上です。

ALTER TABLEを使ってテーブル名を変更しました。

ALTER TABLEを使ってフィールドを追加しました。

ALTER TABLEを使ってフィールドを変更しました。

ALTER TABLEを使ってフィールドを削除しました。

データベースを運用していく中では、必要に応じてこのように手を加えることがあります。

PHPでSQLを実行する方法も参考にしてみてくださいね。

大石ゆかり

alter文で変更や削除、追加などできるんですねー。データと似てますね。

田島悠介

そうなんだ。SQLは大別すると、データベースのユーザー作成に関わるもの、テーブルなどの定義に関わるもの、データの検索や追加などの3種類になるんだ。

大石ゆかり

後から変更できるんなら、最初にテーブルを作成するときは、適当でも大丈夫ですね!

田島悠介

たいていの場合は大丈夫だけど、データ量が多いと、時間がかかったり問題が起こることがあるよ。

 

PHPを学習中の方へ

これで解説は終了です、お疲れさまでした。

  • つまずかず「効率的に」学びたい
  • 副業や転職後の「現場で使える」知識やスキルを身につけたい

プログラミングを学習していて、このように思ったことはありませんか?

テックアカデミーのPHP/Laravelコースでは、第一線で活躍する「プロのエンジニア」が教えているので、効率的に実践的なスキルを完全オンラインでしっかり習得できます。

合格率10%の選考を通過した、選ばれたエンジニアの手厚いサポートを受けながら、PHP/Laravelを使ったWebアプリケーション開発を学べます。

まずは一度、無料体験で学習の悩みや今後のキャリアについて話してみて、「現役エンジニアから教わること」を実感してみてください。

時間がない方、深く知ってから体験してみたい方は、今スグ見られる説明動画から先に視聴することをおすすめします!

初心者・未経験でもできる。まずはテックアカデミーに相談しよう

プログラミングを独学していて、このように感じた経験はないでしょうか?

  • ・調べてもほしい情報が見つからない
  • ・独学のスキルが実際の業務で通用するのか不安
  • ・目標への学習プランがわからず、迷子になりそう

テックアカデミーでは、このような 学習に不安を抱えている方へ、現役エンジニア講師とマンツーマンで相談できる機会を無料で提供 しています。
30分間、オンラインでどんなことでも質問し放題です。

「受けてよかった」と感じていただけるよう 厳しい試験を通過した講師 があなたの相談に真摯に向き合います。

「ただ気になることを相談したい」
「漠然としているがプロの話を聞いてみたい」

こんな気持ちでも大丈夫です。

無理な勧誘は一切ありません ので、まずはお気軽にご参加ください。
※体験用のカリキュラムも無料で配布いたします。(1週間限定)

今なら参加者限定の割引特典付き! 無料相談を予約する