*

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

公開日: : 最終更新日:2016/03/11 MySQL, PHP, WEB全般, 講義 , , , ,

今回はMySQLで掲示板を作ろうの続きです。前回のMySQLの講義が11/18日ですね。

2か月以上あいてしまいました・・・

すいません。決して忘れていたわけではないですが、純粋な学習コンテンツ以外のもので書きたいネタが多かったため、そっちがメインになっていました。

前回までの記事

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

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

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

今回の学習内容

前回まででようやく準備ができたので、今回は実際にこのテーブルにデータを操作していきます。

データの操作といっても大げさなことではなく、やることは以下の4つです。

  • データを入力する
  • データを検索する
  • データを更新する
  • データを削除する

普通の本って大体検索から教えるんですが、まずはデータを入れないとはじまらないので、まずは入力から行います。

データを入力する

Excelならただセルをクリックしてデータを入力するだけでいいのですが、データベースとなるとそうはいきません。

“りんご”というデータを入れるだけでもいろいろと一工夫いります。

入力をさせたいときは前回まで作ったboardテーブルに対して下記のような文をSQLに送ります。

ins

Query OKというメッセージが帰ってきたら成功した、という意味です。

データを入力するときはこのinsert~という文をうちます。

insert文は

という形をとります。

値は文字列の場合はクオート(‘ あるいは”)で囲むことを忘れないようにしましょう。

ちなみにinsert文を大文字で解説してあるサイトもありますが、小文字でも大文字でもどちらでも問題ありません。このサイトでは小文字で

最初のうちは皆さん、入力間違えが非常におおいです。MySQLはコンピューターなので1文字間違っただけでも受け付けてくれません。

しかもエラーメッセージが冷たく(汗)、はっきりとした場所がわからないんですよね・・・

最初のうちはコピペで具体的な名称のところだけを変えるようにするのがいいと思います。

データを検索する

次にデータを検索してみましょう

次の文を投げてみましょう

sele

入力したデータを表示することができました。

このselect ~という文でデータベースからデータを引っ張ってきます。

もちろん全部引っ張ってくるわけではなく、いろいろな条件をつけることができます。

今はデータが1つしかないですが、例えばid=100のデータだけをとってきたい場合には

とうてばOKです。where という部分が欲しいデータの条件付けをしているんですね。

select文は一般的には

となります。

今回は非常に簡単なものだったんですが、もちろんこれだけではなくもっと複雑な条件の検索や合計値や平均値の集計などをすることもできます。

また前回,idについてプライマリーキーやauto_incrementという説明しましたが。実際にデータをみてみると自動的にidが入力されていることがわかります。

これは前回 auto_increment(自動的に番号が追加される仕組み)という属性をidに付加したからです。

データを更新する

入力、検索ときたら次は更新(一度書き込まれたデータを再度書き換えること)を行います。update~という命令で変更をします。

testと入力した文字をtest2に更新した後、selectで確認してみましょう。

up

update文は

となります。

ポイントとしてはwhereを絶対忘れないことです。

これを忘れると全部のデータを一気に上書きしてしまうからです。

データベースの場合、Excelと違って気軽にCtrl+Zなどで操作を戻したりはできません。

一度やってしまったが最後、データはもとに戻りません。

全件を同時に更新するとかそういった処理でない限りは必ずwhere句を付けるのをわすれないようにしましょう。

私の場合、手が滑って更新しないようにwhereを書いてからupdate全文を書くようにしています。

またそのためにも重要な作業をやる前には必ずバックアップ(まだ説明していませんが・・)を取っておきましょう。

データを削除する

最後はデータを削除する方法です。

実は削除にも2通りあり、データ自体を物理的に削除して今うこと、削除しているようにみせるという2つの方法があります。

データを物理的に削除する(物理削除)

これは文字通り、データを完全に消してしまうことです。

例えば というデータを消したいときは以下のようにうてばデータが完全に消えます。

del

selectで確認をしてみると「Empty set」となってデータが消えていることが確認できると思います。

やる場合はupdateの時と同様where句を絶対にわすれないこと、重要な処理を行う場合にはバックアップを必ず取るようにしましょう。

ちなみにこのような削除の仕方を物理削除といいます。

データを削除しているようにみせる(論理削除)

これは実際は削除していないのに削除しているように見せる処理です。

どういうことかといいますとwindowsのゴミ箱などがそうです。

通常windowsでは削除するとゴミ箱というフォルダの中にデータが入っていますが、元に戻すことができますね。

要はデータ自体は消えておらず、このフォルダの中に入っていたら、削除されたものとみなす、仮削除扱いみたいなことをしています。

データベースで削除をする場合でもそういった手法をとることが一般的です。

どのような処理をするかというと今回の掲示板のケースでは使っていないのですが、削除を示すカラムを作り、通常は0をいれておきます。

そして削除する場合は先ほどのdeleteを使うのではなく、1を入れるのです。

つまり

  • 0の時は削除されていない
  • 1の時は削除されている

といった判定をいれます。

データ自体は消えていないけれども「削除扱いにする」ようなものですね。

こういった削除の仕方を論理削除といいます。

おまけ(nullについて)

前回,nullというデータの型についてふれました。nullとはデータが何もない状態をさします。

ここで覚えておきたいのはnullと空文字は違うということです。

空文字というのは空白が入っているということなのでデータ自体は存在しています。nullはデータ自体が存在しません。

例えば目の前のコップの中にコーラのペットボトルがあり、中を全部飲み干してしまったとします。

そのときに「目の前のペットボトルにコーラがどれくらい入っていますか?」と聞かれれば「空っぽ」ということができます。

しかし、目の前に何もないときに「目の前のペットボトルにコーラがどれくらい入っていますか?」という質問をされてもそもそも存在していないので答えようがですよね。これがnullの状態です。

このように空文字とnullは違うものだと覚えておきましょう。

まとめ

今回学習したコマンド

データを検索する

データを入力する

データを更新する

データを削除する

もちろん他にもいろいろな構文がありますが、超基本的なものは上記の4構文です。

これらをしっかりと使えるようになっておきましょう。

次回の記事はPHPで掲示板を作ろう!(データベース編) その5 PHP-MySQL連結編です。

関連記事

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

以前、お問い合わせフォームを作成しましたが、今回からは数回に分けて掲示板を作成していこうと思います。

記事を読む

基本ルールのまとめ

こんばんは、松本です。 このブログのコンテンツもこのエントリーで25本目となってきました。

記事を読む

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

ちょっと間隔があいてしまいましたが、今回はMySQLの講義です。 前回までの記事 PHPで掲示板

記事を読む

繰り返しを学ぼう その2 (while)

おはようございます。松本です。 最近、仕事をしていると細かいノウハウよりも「行動力」が何よりも

記事を読む

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

それでは前回のコードを例に少しずつ内容について説明をしていきます。 値を取得するには まず一番最

記事を読む

なぜPHPなのか

はじめまして、プログラミングの講師を担当させていただきます、松本と申します。 このたび、株式会

記事を読む

よく使う処理をまとめよう その1 (関数)

おはようございます。松本です。 私の会社では10時半から掃除の時間でして、ここ数ヶ月ずっとやっ

記事を読む

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

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

記事を読む

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

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

記事を読む

PHPで掲示板を作ろう! 掲示板の作成方法 その4(ファイル読み込みとHTML表示)

今回でラストです。(次回はまとめをやる予定ですが。) これだけのソースにしては説明が長かったで

記事を読む

Comment

  1. par-t より:

    You’re the very able individual!

Message

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

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

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

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

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

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

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

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

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

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

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

→もっと見る

  • follow us in feedly
PAGE TOP ↑