*

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

関連記事

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

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

記事を読む

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

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

記事を読む

初心者がプログラミング学習で挫折しないために大切な2つのポイント

ブログを開設してから半年近く、記事にして70ちょっと書いてきましたが、人気のある記事を見ていると大き

記事を読む

ドキドキ本番リリース時に大切な心構え

今回はエンジニアにとって大切な本番リリースについて。 本番リリースというのはいままで開発環境(

記事を読む

プログラミング学習法「写経」について

本日は本ブログのメインテーマであるプログラミング学習について考えてみたいと思います。 今までプ

記事を読む

作業が遅くてイライラしている方必見!作業スピードを改善するネタ・ツールなど

エンジニアとして仕事をしていますと、「ある機能を実装する最適な方法(設計やプログラムの組み方全般)を

記事を読む

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

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

記事を読む

就活生必見! Webエンジニアになるなら知っておきたい超基本業界用語

本日はWEB業界でよくつかわれる専門用語について私の知っている範囲で書いていこうと思います。

記事を読む

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

このサイト、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 ↑