*

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でプログラミングを始めるためにはXAMPPのインストールともう一つエディタというソフトをそろえ

記事を読む

プログラミングを独学で身につけるための4ステップ(実践編)

前回の記事ではプログラミングを独学で身につけるための心構え的なお話をしました。 今回は、実際に

記事を読む

「初級」〜「中級」のPHPエンジニアのスキルについてまとめてみる

いままで主にPHP(を中心としたWeb技術)を勉強し始めの傾けに記事を書いていましたが、今回は初級か

記事を読む

お問い合わせフォームを作ろう! その2(PHP)

おはようございます。松本です。 繰り返しますが、このブログは技術ブログなので(笑)PHPのネタ

記事を読む

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

あ、最近はこのブログの画像に凝るようにしています。サイドバーなんかみていただくとブログのアイキャッチ

記事を読む

「初心者が勉強するのに良いプログラミング言語は何ですか?」を真面目に考えてみる

プログラミングをそもそもやったことがない方であれば、タイトルのように「どのプログラミング言語をやった

記事を読む

気を付けよう!個人事業主として働くときのトラブル

最近は開発のほうが忙しく、更新頻度が落ちているのですが、既存の記事を読んでる読者さんが多く、アクセス

記事を読む

初心者が知っておくべきプログラミングの学習法

おはようございます。松本です。 最近、体重が増えているのが悩みでして今現在71kgあります。去

記事を読む

セミナー告知のお知らせ

突然ですが2018/06/16にIT業界への就職希望者を対象とした無料プログラミングセミナーを開催さ

記事を読む

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

以前、掲示板を作成するブログ記事を書きました。 その1 PHPで掲示板を作ろう! 掲示板の作成

記事を読む

Comment

  1. テルテル坊主 より:

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

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

    • matsumoto より:

      テルテル坊主さん

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

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

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

Message

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

無料PHPスクール
自社開発>客先常駐である本当の理由

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

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

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

エンジニアを採用する上で大事なこと

本日はエンジニアの採用について書きたいと思います。最近少し採用に絡んだ

エンジニアが給料を上げる方法を真面目に考えて見ました。

本日はエンジニアと給料の話題について触れて行こうと思います。 エ

エンジニアの「スキル」とはなんぞや

給与が低いことに悩んでるエンジニアへのアドバイスをツイートで見たところ

→もっと見る

  • follow us in feedly
PAGE TOP ↑