第15回 更新処理を覚えよう - MySQL講座

PHP基礎編

サカイ先生のMySQL講座

Lecutures on PHP

第15回 更新処理を覚えよう (その4)

 このエントリーをはてなブックマークに追加

削除する

  • もっと怖い命令というのは「削除」ですね。
  • そう。削除体験として、さっき太郎君が登録してくれた、太郎君データを削除しようか。
  • はい。 ID 67621 でしたので、消します。削除前に、WHERE条件が正しいかを SELECT で確認したほうが安全ですね。
SELECT * FROM customers WHERE id=67621;
DELETE FROM customers   WHERE id=67621;

1行目のSELECTで確認して、表示されたのが僕のデータだったら、同じ条件(WHERE句)になっている2行目のDELETE文で削除をする方針でいきまーす。

mysql> SELECT * FROM customers WHERE id=67621;
+-------+-------------+----------+-----------------+----------------+------------+---------------------+---------------+
| id    | name        | zip      | prefecture_code | address        | birthday  | regist_date         | unregist_date |
+-------+-------------+----------+-----------------+----------------+------------+---------------------+---------------+
| 67621 | ぼくは 太郎 | 123-4567 | 13              | 東京都のどこか | 1985-11-05 | 2009-04-04 16:14:15 | NULL          |
+-------+-------------+----------+-----------------+----------------+------------+---------------------+---------------+
1 row in set (0.02 sec)
  • たしかに僕のデータ1件だけが表示されたので、同じ条件(WHERE句)でDELETEを実行します。
mysql> DELETE FROM customers   WHERE id=67621;
Query OK, 1 row affected (0.03 sec)
  • そして再度、最初と同じ条件でSELECTして確認。
mysql> SELECT * FROM customers WHERE id=67621;
Empty set (0.00 sec)
  • たしかに僕がいなくなりました。・・・・ちょっと寂しいです。。
  • あはは。まぁ太郎君の練習用データベースだから、登録したかったらまた登録したらいいよ(笑)。

ともかく、削除文そのものだけでなく、前後の「ちゃんと処理ができたか」の確認を含めて、完璧だね。

残りあとわずか

  • そういえば前回、都道府県別顧客数の人口比を出してみたいからデータを探してみよう、って話をしていたけど、データはあった?
  • はい!ちょうどいいデータがすぐに見つかりました!
  • じゃぁ次回はそれを使って、prefecture テーブルの拡張とデータの投入。そして太郎君のやりたかった「対人口比率」での集計をやってみようか。
  • やったぁ、ありがとうございます。
  • そして、さらにその次の回で、その他細々したお話しをいくつかして、太郎君にも免許皆伝ということにしようかなと思っているから。
  • 免許皆伝、って嬉しいですけど、それって「おしまい」って意味ですか?

おわりに

サカイ先生
いかがでしたか。更新系の構文をただ単に実行する方法ならば第1シーズンの講座でも紹介しました。今回は先輩の経験や太郎君の鋭いセンスで、更新処理の際にどんなミスを起こしやすいか、正しく更新されたことを確認するにはどう言った点に着目したらよいのかを聞くことができたと思います。

さて、先輩からの紹介にもあったとおり、本講座も残すところあと僅かとなりました。あと2回にわけて、テーブルレイアウトの変更方法やデータのダンプ方法などのテクニックやTIPSを学びます。お楽しみに。

  • サカイ先生

本名:坂井 恵(さかいけい)

有限会社アートライ 代表取締役

日本MySQLユーザ会(MyNA; http://www.mysql.gr.jp/) 副代表

システム開発で一番楽しいのは要件を決めて設計をするフェーズ。ここを楽しむために諸分野の基礎固めが重要だと考えている。
近著に『MySQL辞典』『MySQL徹底入門』(翔泳社) など。

ご意見・感想フォーム

今回の「サカイ先生のMySQL講座」への評価・ご意見があればご記入下さい。

評価:
ご意見・感想:

  



Pick Up Q&A

Q
PHPのHTML埋め込み記述について
 このエントリーをはてなブックマークに追加 
A
$_POST["data"] == "男" ? $val = "checked" : $val = "" ; の意味は以下と同じです。 if($_POST["data"] == "男"){ $val = "checked; } e...

>>続きを読む

kende様のご指摘通り、三項演算子を使用する際には、コードの複雑度などを考慮する必要がありますね。書きやすさと共に可読性も追求したいところですね。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)