*

PHPで掲示板を作ろう!(データベース編) その3 データベース作成編

公開日: : 最終更新日:2017/05/08 MySQL, PHP, WEB全般, 講義 , , , ,

ちょっと間隔があいてしまいましたが、今回はMySQLの講義です。

前回までの記事

PHPで掲示板を作ろう!(データベース編) その1 データベースとは

PHPで掲示板を作ろう!(データベース編) その2 MySQLログイン編

MySQLの概念

MySQLなんですが、最初の壁はCUIであるということと、データベース、テーブル、データの型といった独特の概念でしょう。
これらは最初のうちはExcelと比べて考えるのがわかりやすいと思います。

元々データベースとエクセルは全然違うのである程度理解したらExcelとは切り離しましょう。最初はたまたま近い概念があるのでたとえとして使います。

データベース=Excelファイル

まずExcelで、ある会社の情報をまとめてみることを考えてみましょう。

例えばA商事という会社と取引をしている場合「A商事.xls」というファイルの中にA商事の商品、売上、担当者などを入力すると思います。

その場合、商品のデータと売上のデータなどは別々のシートに入力をします。

つまりエクセルの場合、エクセルのファイル自体と個々のデータが入っているシートに分かれます。

実はMySQLでデータを入力するときも同じように考えます。

MySQLでデータ管理をするためには大きくデータベースとテーブルの概念を理解する必要が出てきます。

ここででてくる「データベース」はMySQLのようなデータベースソフトではないですし、一般的なデータベースという意味を指す単語でもありません。

一言でいうとプロジェクトファイルのようなかんじです。先ほどのエクセルのファイル自体に近いイメージです。

例えば、私が今仕事でガチンコ塾と開発の仕事をかかえており、これらのデータをMySQLで管理するとします。

その場合、ガチンコ塾関連のデータと開発関連のデータというのは当然別々ですので、プロジェクト自体を分けなくてはいけません。

先ほどのエクセルの例で言うとA商事と関連のないBコーポレーションの情報を同じエクセルで管理したりはしないはずです。

このようにある1つのプロジェクトの単位で作るデータの集合体自体をデータベースといいます。

MySQLでデータを扱いたい場合まずこのデータベースを作成する必要がでてきます。

データベースの作り方は簡単で、ログインしたあと

下記のように

dbsakusei

と入力し、Query OKと出てくれば成功しています。

board_dbのところは任意のデータベース名が入ります。

今後このデータベースを使っていきますのでuse board_dbと入力しましょう。

キャプチャ図のようにDatabase Changedとでれば選択できています。

ユーザーの作成

データベースを作ったら次にユーザーを作ります。前回rootユーザーについて説明しましたが、MySQLではデータベースの作業をするときにはrootユーザーではなく、特定のデータベースだけをみれるユーザーを作成することが一般的です。

前回もいったとおり、rootユーザーというのは一番権限が強いため、すべてのデータベースをみることができてしまいます。

rootユーザーで作業をし続けることは危険なため、今回だとboard_dbだけをみるユーザーboard_userを作成します。

パスワードはboard_passにしましょう。下記のようにmysqlにうちます。

また一度ユーザーを作ったら、ログアウトし、再度board_user(パスワードboard_pass)でログインしてみましょう。

cap

テーブル=Excelのシート

次に出てくるのがテーブルです。

さきほどのエクセルの例でも説明したように、データベースというのはエクセルのファイル自体のようなものです。

実際に売上だったり、顧客情報といったものは個々のシートに入れていました。

MySQLでも実際のデータはテーブルという表を作り、この中にデータを入れていきます。

テーブルとは下記のエクセルの表そのものをイメージしてもらえればいいと思います。

hyou

例えば顧客情報を入力する場合ですが、項目名があり、あとはデータを1つ1つ入れることになります。

データの型

MySQLでテーブルを作る場合、テーブルを作り、その中にデータを入れていくことになりますが、このテーブルの作成がかなり面倒です。

エクセルの場合、何も考えずにデータを入力しても問題ありませんが、MySQLの場合、入れるデータのタイプを決めておかなければいけません。

例えば数字を入れるのか、文字を入れるのか、日付けを入れるのかをあらかじめ決めておかないといけませんし、一度決めると別の形式のデータは入れられません。

どんな種類があるかというと

  • 数字(int)
  • 文字数が決まった文字列(varchar)
  • 長文(text)
  • 日付け(timestamp)

などです。

※()の英語文字はMySQLで使用されるデータの型名です。

これ以外にもいろいろありますが、とりあえず上記のものだけを覚えておけば何とかなります。

文字(varchar)と長文(text)の違いですが、文字とは名前、住所、電話番号、郵便番号などある程度長さが決まっているものです。

それに対し長文とはお問い合わせフォームのコメント欄のように長さの制限がないものです。

プライマリーキーという存在

次にMySQLでおさえておかなければいけないのが、そのデータを識別するためのidです。

例えば学校に入れば生徒番号、会社に入れば社員番号などというものが発行されます。

たとえ本人は知らなくてもこのような番号が付番されることが一般的です。

このような番号がないとお互いを識別することができないため、非常に不便です。(名前だと同姓同名がいて、かぶる可能性があるのでこれでは識別の役には立ちません。)

そのため一般的にはデータを識別するために

  • 他のデータと重複しない
  • 変更ができない
  • どのデータにも必ず振られる

性質のidがあったほうが便利です。

ちなみにこのような性質を踏まえたid的なデータをプライマリーキーといいます。

一般的には+1ずつされる番号を振るケースが多いです。

実際のテーブル作成

これでテーブルを作る最低限の事前知識がおわりました。ここからテーブルを作って見ましょう。

例えば今回は掲示板ですので必要な項目は

書き込みデータを識別するためのid

数字(int)であり、プライマリーキーの性質を持つ。+1ずつ自動追加される

書き込みをした人の名前のname

長さ(20文字としましょう。)の決まった文字列(varchar)

書き込み内容 comment

長さが決まっていない長文(text)

です。

これらのデータが入るようなテーブルの作り方は下記のような命令になります。

※テーブルの名前はboardにしておきましょう。

varchar(20)の20は文字数のことです。

また上記のソースのように改行やインデントはしなくてもよいですが、したほうが見やすいため、することをお奨めします。

※not nullについては次回説明します。

このコマンドをうったあとにdesc boardとうってあげるとテーブルの型などが表示され意図通りのテーブルが確認できたと思います。(下記キャプチャ図を参考にしてみてください。)

table

次回以降、もう少し発展的な説明と実際のデータの入力、検索などをやっていきます。

まとめ

今回学習したコマンド

データベースの作成

データベースの選択

ユーザーの作成

テーブルの作成

デーブルの構造確認

次回の記事はPHPで掲示板を作ろう!(データベース編) その4 SQL編になります。

関連記事

PHPで掲示板を作ろう! 掲示板の作成方法 その2

前回の学習 PHPで掲示板を作ろう! 掲示板の作成方法 その1 それでは掲示板の作成方法その

記事を読む

データを扱ってみよう その3(多次元配列)

お疲れ様です。松本です。 さて前回の「データを扱ってみよう その2(配列)」から若干日が開いて

記事を読む

理論と実践のバランス

ネタ不足&開発のほうが忙しく、一か月以上書いておりませんでした。 今回は漠然とスキルアップする

記事を読む

あなたのPHPレベルを判定してみよう!未経験者限定スキル判定表

プログラムを勉強していると自分のレベルみたいなものが気になる方は多いでしょう。 私の場合も独学

記事を読む

プログラミング学習法「写経」について

本日は本ブログのメインテーマであるプログラミング学習について考えてみたいと思います。 今までプ

記事を読む

PHPはなぜ簡単といわれるのか?

最近ではブラック企業と同じような意味合いでブラックバイトなんて言葉があるらしいですね。 ただ定

記事を読む

教え方がうまい人に共通するたった1つの考え方

やや遅い気もしますが、あけましておめでとうございます。 今年もよろしくお願いします。 昨

記事を読む

初心者でもできる!作れる!WEBサービスの開発 その2 制作体験記編

前回からの続きですが、主にプログラムの勉強目的として、簡単なWEBサービス(アフィリエイトサイト)を

記事を読む

条件によって処理を分けよう (if)

おはようございます。松本です。 昨日はひさびさにサイクリングを長時間楽しみました。往復で50キ

記事を読む

初心者でもできる!作れる!WEBサービスの開発 その4 総まとめ編

前3回の記事でWEBサービスを作ったお話をさせていただきました。 (前回までのお話し)

記事を読む

Comment

  1. テルテル坊主 より:

    こんにちはー。
    PHPとMySQLで掲示板などを作ろうと思い、検索していたらこんなすごいサイトに辿り着きました。
    色々丁寧な説明や図入りの解説があり、なんとかここまで来ましたが、一か所つまずいてしまいました。
    “|データベース=Excelファイル”の段落、”今後このデータベースを使っていきますのでuse board_dbと…”という箇所を何度も見落としてしまったので、赤線があった方が良いかなぁと感じました。

    引き続き頑張りますーー。

    • matsumoto より:

      テルテル坊主さん

      >PHPとMySQLで掲示板などを作ろうと思い、検索していたらこんなすごいサイトに辿り着きました。
      >色々丁寧な説明や図入りの解説があり、なんとかここまで来ましたが、一か所つまずいてしまいました。
      >“|データベース=Excelファイル”の段落、”今後このデータベースを使っていきますのでuse board_dbと…”という箇所を何度も見落としてしまったので、赤線があった方が良いかなぁと感じました。
      >引き続き頑張りますーー。

      こちらサイトを見ていただきありがとうございます。
      テルテル坊主さんの学習の助けになりましたら何よりです。

      use board_dbの件のご指摘もありがとうございます。
      赤線を引かせていただきました。

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

転職エージェントについて

さて、エンジニアとして転職を考えている人であれば転職エージェントを使っ

エンジニアが転職して年収を上げる方法を考えてみました。

えー前回の記事でも書きましたが、2020年2月現在転職活動中です。

2020年のご挨拶

今更ですが、明けましておめでとうございます。 2019年も2本し

自社開発>客先常駐である本当の理由

このブログでも何回か取り上げていますが、ITエンジニアの働き方としては

エンジニアにとって必要なコミュニケーション能力とは

気がついたらもう3月下旬になっていますね・・ 年末年始忙しかった

→もっと見る

  • follow us in feedly
PAGE TOP ↑