このブログは未経験からのエンジニア転職やプログラミングの勉強方法などを発信する、現役エンジニアによるエンジニアのためのトータル技術ブログです。ブログとご一緒にSNSのフォローもよろしくお願いします。

Twitterをフォローする

【MySQL】テーブルとカラムの操作【基本】

MySQL
スポンサーリンク

こんにちは、あっきー(IwswAkht)です。

データベースの扱いに慣れようシリーズということで今回もやっていきます。前回の記事はこちら

データベースの基本的な知識、接続の仕方、設定などを前回は解説しましたので、今回はデータベースの中にテーブルを作ったり変更したりするやり方について解説していきます。

それではやっていきましょう。

スポンサーリンク

データベースの構造

【MySQL】データベースへの接続・作成【基本】ではデータベースの基本的な知識と操作方法を確認しました。

ここでは、はじめにデータベースの基礎的な構造を確認していきます。
データベースは以下の構造で成り立っています。

  • データベース
  • テーブル
  • レコードとカラム

フレームワークからプログラミングをはじめた方などで、意外とこういう基本的なところを知らなかったみたいなこともあるようなので簡単に解説させていただきます。

データベースの構造はEXCELで例えるのがわかりやすいと思いますのでそんな感じでやっていこうと思います。

データベース

データベースは一言でいうならです。

データベースという1つの箱の中に複数のテーブルがあり、テーブルの中に複数のカラムがありと階層的な構造になっている大元になる部分になります。

エクセルで例えるならワークブックがデータベースにあたる部分になります。

テーブル

テーブルは一言でいうなら情報のかたまりです。

情報のかたまりと言ってもでたらめに情報が集まっているわけではありません。

例えば、お客さんの情報を集めたいのにそこに社員のデータなどが混ざっていたら何に対する情報なのかさっぱりわからないのですね。

なので、テーブルはある特定の条件に当てはまる「データ」を集めるという前提でまとめるので、お客さんの情報が集まったテーブル、社員情報が集まったテーブルと言うふうに切り分けてデータベースをつくっていくことが大切です。

Excelでいうならワークシートの部分が該当します。
1つのワークシートに全部の情報をまとめることってまずありませんよね。「お客様シート」と「社員シート」みたいに分けて管理するかと思います。

レコードとカラム

レコードとカラムはテーブルの詳細情報です。

テーブルの例で出したお客さん情報で言うならお客さんの名前や電話番号などの1つのカテゴリがカラムになり、名前はAさん、電話番号はxxxと言うカラムに対する実際のデータ群をレコードといいます。

Excelで表を作るイメージですね。

データベースの基本的な構造を理解できましたでしょうか?
次はデータベース作成、テーブル作成、カラムの操作などをして、実際に手を動かしながら確認していきましょう。

テーブルの操作

先ほどのデータベースの構造にそって実際にテーブルをつくってみましょう。

データベースの作成はこちらの記事でやっていますので参考にしながらcustomerとうデータベースを作成します。

ターミナル

テーブルの作成

テーブルの作成方法をみていきましょう。

customerデータベースにcustomer_infoと言うテーブルを作成してみますので以下のコマンドを実行してください。

ターミナル

テーブルの作成が確認できましたら以下に構文の解説をしていきます。まずテーブルの作成の構文は以下のようになります。

create table テーブル名(カラム名 データ型, カラム名 データ型)

基本はカラム名+データ型の構成で追加したい分のカラムを登録をします。
データ型については次の項目で説明していきます。

必要に応じて、(カラム名 データ型 制約)と言う風にオプションを追加します。

上記のコードブロックに記載あります、default '0' not nullにあたる部分ですね。

制約についてはまた別の記事で解説していきたいと思いますので、現状は何かしらして欲しくない条件を追加することができると言う認識だけ持っておいていただけばオッケーです。

データ型

ここまでデータベースの構造をExcelに例えて説明しましたが、データベースに決定的な違いがあるとすればデータ型の存在があります。

データ型とは、各カラムにどんな値を保存するのかを表す情報です

例えば、テーブルの作成のコードブロック内にありますname varchar(255)とありますが、これがデータ型の指定になります。

varchar型は文字列をセットできるデータ型、(255)は何文字まで入力できるかと言うことを指定しています。

その他にもint型は整数など各カラムに対してデータ型を指定してテーブルを構成しながら入ってくる情報に対して適切なデータ型を指定して行くことが基本になります。

データ型の種類などは公式ページを参考にしていただいたり、個人ブログなどでまとめている方などもいらっしゃいますので参考にしてみるといいかもしれないですね。

テーブルの削除

テーブルの削除の仕方も確認しておきましょう。
まだ同じテーブル内でカラムに関する操作をしますので最後まで試すとしたら記事が終わってからにしてください。

ターミナル

Emptyと表示されていることからテーブルが削除されていることが確認できますね。

さて、普通にmysqlクライアントから自分でsqlコマンドを打つ分にはこれで良いのですが、仮にプログラム上でテーブルを削除するなどをした場合だとこれだと問題があります。

試しにもう一度同じテーブルを削除するsqlコマンドを実行してみましょう。

ターミナル

エラーが表示されていることが確認できますね。すでにないテーブルを削除しようとしてますのでそんなテーブルは知らないよと怒られてしまったわけです。

以上から、もしテーブルが存在したら削除するという制御を加える必要があることが想定されます。

そんな場合は以下のsqlコマンドを使うことで解決することができます。

ターミナル

OKでエラーが発生していないことを確認できます。こういう風に特定の制御を加えることもできるということを今回は覚えていってもらえたらと思います。

カラムの操作

データベースを作成した後にカラムの追加・削除・変更をしたいということはよくあります。

そんな時に1からテーブルを作り直していたら不便ですし、すでにレコードが複数登録されている場合だと作り直すのは良い選択肢とは言えませんよね。

そんな時に既存のテーブルを残したまま一部のカラムに対して何かしらの変更を加える方法について順番に確認していきましょう。

カラムの追加

説明は後でまずはカラムの追加をしてみましょう。

mysqlクライアントを起動したら以下のSQLを実行してください。

ターミナル

ageカラムが追加されたことが確認できます。

このようにカラムの追加にはalter tableという命令文を使うことで追加することが可能です。

追加の場合は以下の構文で追加することができます。

alter table テーブル名 add カラム名 データ型

また、上記のsqlコマンドではテーブルの末尾にカラムが追加されますが、例えば先頭に追加するしたい場合などは以下の構文でできます。

alter table テーブル名 add カラム名 データ型 first

実際のsqlコマンドとしては以下です。

ターミナル

また、特定のカラムの後ろに追加したいという場合は以下の構文でできます。

alter table テーブル名 add カラム名 データ型 after カラム名

実際のsqlコマンドとしては以下です。

ターミナル

これでnameカラムの後ろに新たに追加します。

カラムの変更

続いてカラムを変更してみましょう。

先ほどのageカラムのデータ型をint型に変更してみますので以下のSQLを実行してください。

ターミナル

Typeintになって型が変更されたことが確認できます。

追加と同じく変更でもalter table命令文を使用します。

構文は以下になります。

alter table テーブル名 change 変更前カラム名 変更後カラム名 データ型

これで変更はできますが、カラム名とデータ型を変更するsqlコマンドです。

データ型を変更するだけですので変更しないカラム名を2回書くのは少々面倒ですね。

そんな時は以下のSQLでデータ型だけを変更することもできます。

ターミナル

また、カラム名だけを変更したいと言う場合では以下のSQLで変更することが可能です。

ターミナル

これでカラムとデータ型同時変更、個別に変更することができるようになりますね。

カラムの削除

削除方法の確認として先ほどのageカラムを削除してみましょう。

カラムの変更でカラム名の変更を行った方はnew_nameになります。

以下のsqlコマンドを実行してカラムが削除されたか確認してください。

ターミナル

カラムが削除されたことが確認できます。構文は以下になります。

alter table テーブル名 drop カラム名

ここまでカラムの追加・変更・削除とやってみて1つの共通点があります。
それは全てがalter table命令文が使用されていることです。

つまりカラムに何かしらのアクションを起こしたい時は、alter tableは共通と覚えておけば続きがaddかchangeかdropなのかの差だけと覚えておけば良いということです

さいごに

最後まで読んでいただきありがとうございます!

今回でやっとデータベースを扱う下準備ができたという感じですね。次からは実際にテーブルにデータを入れていろんなコマンドでテーブルを操作していく方法を覚えていきましょう!

この記事を気に入っていただけましたらTwitterでもプログラミングやブログに関してのツイートをリアルタイムでしていますので
ご一緒にフォローもお願いします。

スポンサーリンク
あっきー

元キャバクラ店長から未経験でエンジニアに転職した異端児。

自分の経験を元に、エンジニア転職や未経験からでも挫折しないプログラミングの勉強方法の発信をしてます。

あっきーをフォローする
MySQL
\良い記事だったらシェアしてね!/
スポンサーリンク
駆け出しエンジニアのつぶやき