*

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で掲示板を作ろう! 掲示板の作成方法 まとめ

さて4回にわけて、掲示板のプログラムを学習してきました。 見た目は超シンプルで実際に動かしてみ

記事を読む

JavaScriptとPHPの違い

お問い合わせフォームと指導者ネタを更新中なのですが、先日セミナーにお越しいただいた受講生の方にPHP

記事を読む

繰り返しを学ぼう (for,foreach)

こんばんわ。松本です。 ゴールデンウィークもそろそろおわりですね。といいつつ、私はどこにも言っ

記事を読む

セミナー告知のお知らせ

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

記事を読む

開発を便利にする道具たち

PHPだけではありませんが、プログラミングには開発スピードをアップさせるための便利な道具があります。

記事を読む

初心者でもできる!作れる!WEBサービスの開発 その1 準備編

前回までは掲示板作成をテーマにPHPの基本的な学習内容について書いてきました。 今回は題材にあ

記事を読む

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

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

記事を読む

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

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

記事を読む

データを扱ってみよう その2(配列)

こんばんは松本です。 少しずつ暖かくなってきましたね。暖かいのはいいんですが、オフィスでブログ

記事を読む

エラーメッセージで挫折

もうエラーメッセージで挫折しない! 4つのエラーメッセージ対処法

このブログで何回か書いたのですが、PHPに限らずプログラミングの独学はかなり難しいです。 その

記事を読む

Comment

  1. par-t より:

    You’re the very able individual!

  2. […] PHPで掲示板を作ろう!(データベース編) その4 SQL編  www.dt30.netPHPで掲示板を作ろう!(データベース編) その4 SQL編 | ガチンコP… PHPで掲示板を作ろう!(データベース編) その5 PHP-MySQL連結編 […]

Message

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

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

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

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

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

2020年のご挨拶

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

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

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

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

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

→もっと見る

  • follow us in feedly
PAGE TOP ↑