*

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連結編です。

関連記事

JavaScriptとPHPの違い

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

記事を読む

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

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

記事を読む

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

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

記事を読む

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

本日はデータベース系の必要な技術について。 ウェブエンジニアといっても技術領域が非常に広いので

記事を読む

プログラミングの基本ルール

ガチンコ松本です。 さて、準備が整ったところでさっそくPHPのコードを書いていきましょう!

記事を読む

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

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

記事を読む

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

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

記事を読む

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

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

記事を読む

ガチンコ塾、人気記事ベスト5

このブログも開設して約半年たちましたね。 思った以上にたくさんの方に読んでもらえてうれしいです

記事を読む

無料プログラミングスクールのメリット・デメリット

一般的にプログラミングのスクールというのは高額です。 30万以上するような講座が普通なので、ぽ

記事を読む

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

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

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

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

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

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

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

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

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

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

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

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

→もっと見る

  • follow us in feedly
PAGE TOP ↑