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

今回はMySQLで掲示板を作ろうの続きです。前回のMySQLの講義が11/18日ですね。
2か月以上あいてしまいました・・・
すいません。決して忘れていたわけではないですが、純粋な学習コンテンツ以外のもので書きたいネタが多かったため、そっちがメインになっていました。
Contents
前回までの記事
PHPで掲示板を作ろう!(データベース編) その1 データベースとは
PHPで掲示板を作ろう!(データベース編) その2 MySQLログイン編
PHPで掲示板を作ろう!(データベース編) その3 データベース作成編
今回の学習内容
前回まででようやく準備ができたので、今回は実際にこのテーブルにデータを操作していきます。
データの操作といっても大げさなことではなく、やることは以下の4つです。
- データを入力する
- データを検索する
- データを更新する
- データを削除する
普通の本って大体検索から教えるんですが、まずはデータを入れないとはじまらないので、まずは入力から行います。
データを入力する
Excelならただセルをクリックしてデータを入力するだけでいいのですが、データベースとなるとそうはいきません。
“りんご”というデータを入れるだけでもいろいろと一工夫いります。
入力をさせたいときは前回まで作ったboardテーブルに対して下記のような文をSQLに送ります。
1 |
insert into board ( name, comment ) values ( 'matsumoto' ,'test' ); |
Query OKというメッセージが帰ってきたら成功した、という意味です。
データを入力するときはこのinsert~という文をうちます。
insert文は
1 |
insert into テーブル名 (カラム名1, カラム名2, ...) values ( '値1', '値2', ...); |
という形をとります。
値は文字列の場合はクオート(‘ あるいは”)で囲むことを忘れないようにしましょう。
ちなみにinsert文を大文字で解説してあるサイトもありますが、小文字でも大文字でもどちらでも問題ありません。このサイトでは小文字で
最初のうちは皆さん、入力間違えが非常におおいです。MySQLはコンピューターなので1文字間違っただけでも受け付けてくれません。
しかもエラーメッセージが冷たく(汗)、はっきりとした場所がわからないんですよね・・・
最初のうちはコピペで具体的な名称のところだけを変えるようにするのがいいと思います。
データを検索する
次にデータを検索してみましょう
次の文を投げてみましょう
1 |
select id, name, comment from board; |
入力したデータを表示することができました。
このselect ~という文でデータベースからデータを引っ張ってきます。
もちろん全部引っ張ってくるわけではなく、いろいろな条件をつけることができます。
今はデータが1つしかないですが、例えばid=100のデータだけをとってきたい場合には
1 |
select id, name, comment from board where id = 100; |
とうてばOKです。where という部分が欲しいデータの条件付けをしているんですね。
select文は一般的には
1 |
select カラム名 from テーブル名 where 条件文; |
となります。
今回は非常に簡単なものだったんですが、もちろんこれだけではなくもっと複雑な条件の検索や合計値や平均値の集計などをすることもできます。
また前回,idについてプライマリーキーやauto_incrementという説明しましたが。実際にデータをみてみると自動的にidが入力されていることがわかります。
これは前回 auto_increment(自動的に番号が追加される仕組み)という属性をidに付加したからです。
データを更新する
入力、検索ときたら次は更新(一度書き込まれたデータを再度書き換えること)を行います。update~という命令で変更をします。
testと入力した文字をtest2に更新した後、selectで確認してみましょう。
1 |
update board set comment = 'test2' where id = 1; |
update文は
1 |
update テーブル名 set カラム名 = '変更したい値' where 条件文; |
となります。
ポイントとしてはwhereを絶対忘れないことです。
これを忘れると全部のデータを一気に上書きしてしまうからです。
データベースの場合、Excelと違って気軽にCtrl+Zなどで操作を戻したりはできません。
一度やってしまったが最後、データはもとに戻りません。
全件を同時に更新するとかそういった処理でない限りは必ずwhere句を付けるのをわすれないようにしましょう。
私の場合、手が滑って更新しないようにwhereを書いてからupdate全文を書くようにしています。
またそのためにも重要な作業をやる前には必ずバックアップ(まだ説明していませんが・・)を取っておきましょう。
データを削除する
最後はデータを削除する方法です。
実は削除にも2通りあり、データ自体を物理的に削除して今うこと、削除しているようにみせるという2つの方法があります。
データを物理的に削除する(物理削除)
これは文字通り、データを完全に消してしまうことです。
例えば というデータを消したいときは以下のようにうてばデータが完全に消えます。
1 |
delete from board where id = 1; |
selectで確認をしてみると「Empty set」となってデータが消えていることが確認できると思います。
1 |
delete from テーブル名 where 条件文; |
やる場合はupdateの時と同様where句を絶対にわすれないこと、重要な処理を行う場合にはバックアップを必ず取るようにしましょう。
ちなみにこのような削除の仕方を物理削除といいます。
データを削除しているようにみせる(論理削除)
これは実際は削除していないのに削除しているように見せる処理です。
どういうことかといいますとwindowsのゴミ箱などがそうです。
通常windowsでは削除するとゴミ箱というフォルダの中にデータが入っていますが、元に戻すことができますね。
要はデータ自体は消えておらず、このフォルダの中に入っていたら、削除されたものとみなす、仮削除扱いみたいなことをしています。
データベースで削除をする場合でもそういった手法をとることが一般的です。
どのような処理をするかというと今回の掲示板のケースでは使っていないのですが、削除を示すカラムを作り、通常は0をいれておきます。
そして削除する場合は先ほどのdeleteを使うのではなく、1を入れるのです。
つまり
- 0の時は削除されていない
- 1の時は削除されている
といった判定をいれます。
データ自体は消えていないけれども「削除扱いにする」ようなものですね。
こういった削除の仕方を論理削除といいます。
おまけ(nullについて)
前回,nullというデータの型についてふれました。nullとはデータが何もない状態をさします。
ここで覚えておきたいのはnullと空文字は違うということです。
空文字というのは空白が入っているということなのでデータ自体は存在しています。nullはデータ自体が存在しません。
例えば目の前のコップの中にコーラのペットボトルがあり、中を全部飲み干してしまったとします。
そのときに「目の前のペットボトルにコーラがどれくらい入っていますか?」と聞かれれば「空っぽ」ということができます。
しかし、目の前に何もないときに「目の前のペットボトルにコーラがどれくらい入っていますか?」という質問をされてもそもそも存在していないので答えようがですよね。これがnullの状態です。
このように空文字とnullは違うものだと覚えておきましょう。
まとめ
今回学習したコマンド
データを検索する
1 |
select カラム名 from テーブル名 where 条件文; |
データを入力する
1 |
insert into テーブル名 (カラム名1, カラム名2, ...) values ( '値1', '値2', ...); |
データを更新する
1 |
update テーブル名 set カラム名 = '変更したい値' where 条件文; |
データを削除する
1 |
delete from テーブル名 where 条件文; |
もちろん他にもいろいろな構文がありますが、超基本的なものは上記の4構文です。
これらをしっかりと使えるようになっておきましょう。
関連記事
-
-
プログラミング開発環境構築で挫折・・ wandboxを使ってみよう
本日はプログラミングの環境構築で挫折した方のために、前回の記事で紹介したwandboxというツールを
-
-
15時間でプログラミング言語の基本をマスターする方法
今回は主に経験者向けの記事となります。 タイトルの通りなのですが、私が新しい言語をマスターする
-
-
初心者でもできる!作れる!WEBサービスの開発 その3 運営体験記編
(前回までの続き) 初心者でもできる!作れる!WEBサービスの開発 その1 準備編 初心
-
-
30代、未経験者、独学中心でWEBエンジニアとして就職するまで
のっけからストレートなタイトルでスイマセン。 昨日ブログのアクセスをいろいろとみていましたが、
-
-
PHPで掲示板を作ろう! 掲示板の作成方法 まとめ
さて4回にわけて、掲示板のプログラムを学習してきました。 見た目は超シンプルで実際に動かしてみ
-
-
「初級」〜「中級」のPHPエンジニアのスキルについてまとめてみる(DB編)
本日はデータベース系の必要な技術について。 ウェブエンジニアといっても技術領域が非常に広いので
-
-
プログラミングを独学で身につけるための4ステップ(実践編)
前回の記事ではプログラミングを独学で身につけるための心構え的なお話をしました。 今回は、実際に
-
-
フレームワークのメリット・デメリット
こんばんは。松本です。 昨日25日にはオフィスで第一回目の授業を開講させていただきました。広島
-
-
お問い合わせフォームを作ろう! その2(PHP)
おはようございます。松本です。 繰り返しますが、このブログは技術ブログなので(笑)PHPのネタ
-
-
PHPで掲示板を作ろう!(データベース編) その1 データベースとは
以前、掲示板を作成するブログ記事を書きました。 その1 PHPで掲示板を作ろう! 掲示板の作成
Comment
You’re the very able individual!
Hi,par-t
Thanks for comment !
Please visit this website again.
[…] PHPで掲示板を作ろう!(データベース編) その4 SQL編 www.dt30.netPHPで掲示板を作ろう!(データベース編) その4 SQL編 | ガチンコP… PHPで掲示板を作ろう!(データベース編) その5 PHP-MySQL連結編 […]