*

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

関連記事

プログラミング開発環境構築で挫折・・ wandboxを使ってみよう

本日はプログラミングの環境構築で挫折した方のために、前回の記事で紹介したwandboxというツールを

記事を読む

15時間でプログラミング言語の基本をマスターする方法

今回は主に経験者向けの記事となります。 タイトルの通りなのですが、私が新しい言語をマスターする

記事を読む

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

(前回までの続き) 初心者でもできる!作れる!WEBサービスの開発 その1 準備編 初心

記事を読む

30代、未経験者、独学中心でWEBエンジニアとして就職するまで

のっけからストレートなタイトルでスイマセン。 昨日ブログのアクセスをいろいろとみていましたが、

記事を読む

PHPで掲示板を作ろう! 掲示板の作成方法 まとめ

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

記事を読む

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

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

記事を読む

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

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

記事を読む

フレームワークのメリット・デメリット

こんばんは。松本です。 昨日25日にはオフィスで第一回目の授業を開講させていただきました。広島

記事を読む

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

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

記事を読む

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

以前、掲示板を作成するブログ記事を書きました。 その1 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 ↑