第5回 データの更新と削除を覚えよう - MySQL講座

PHP基礎編

サカイ先生のMySQL講座

Lecutures on PHP

第5回 データの更新と削除を覚えよう (その2)

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

データの削除 ~ DELETE

 では次はデータの削除です。これもまずマニュアルを見てみましょう。

http://dev.mysql.com/doc/refman/5.0/en/delete.html

DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name
        [WHERE where_condition]
        [ORDER BY ...]
        [LIMIT row_count]

 DELETEの処理自体がそもそも「消したいレコード(の条件)を指定して削除する」だけなのでわかりやすいですが、これも以下の形式を覚えておくとよいでしょう。

おぼえておこう DELETE この形式で
DELETE FROM テーブル名
        WHERE 条件

サカイ先生 いままでの中で一番シンプルですね! でもデータが消えてしまうという点で、これまでの中で一番「怖い」命令とも言えます。実行時には条件を何度も見直すなど、慎重に取り扱いましょう。

 では、実際にデータを削除してみましょう。先ほど UPDATE で更新した 2008 年のデータは、まだ登録しない事にしようと決まったので(そう決まったと思ってください)、削除します。先ほどは WHERE 条件に year=2008 を指定しましたが、今回は no カラムの値を用いて指定しましょう。もちろん year 列を指定しても構いません。

 まず更新前のデータを見てみると、、、、

mysql> SELECT * FROM kohaku;
+----+------+----------------+------------+--------+
| no | year | aka_tori       | shiro_tori | winner |
+----+------+----------------+------------+--------+
| 53 | 2002 | 石川さゆり     | 五木ひろし | 紅     |
| 54 | 2003 | 天童よしみ     | SMAP       | 白     |
| 55 | 2004 | 小林幸子       | 五木ひろし | 紅     |
| 56 | 2005 | 天童よしみ     | SMAP       | 白     |
| 57 | 2006 | 川中美幸       | 北島三郎   | 白     |
| 58 | 2007 | 石川さゆり     | 五木ひろし | 白     |
| 59 | 2008 | たべものがかり | 五島五郎   | NULL   |
+----+------+----------------+------------+--------+
7 rows in set (0.06 sec)
※ >の後の SELECT * FROM kohaku; が入力するコマンドです。

 削除したいレコードの no カラムの値は 59 であることがわかります。

 ではその値を「条件」として指定して、レコードを削除してみましょう。削除後、消えたことを SELECT で確認してみます。

mysql> DELETE FROM kohaku WHERE no=59;
Query OK, 1 row affected (0.03 sec)

mysql> SELECT * FROM kohaku;
+----+------+------------+------------+--------+
| no | year | aka_tori   | shiro_tori | winner |
+----+------+------------+------------+--------+
| 53 | 2002 | 石川さゆり | 五木ひろし | 紅     |
| 54 | 2003 | 天童よしみ | SMAP       | 白     |
| 55 | 2004 | 小林幸子   | 五木ひろし | 紅     |
| 56 | 2005 | 天童よしみ | SMAP       | 白     |
| 57 | 2006 | 川中美幸   | 北島三郎   | 白     |
| 58 | 2007 | 石川さゆり | 五木ひろし | 白     |
+----+------+------------+------------+--------+
6 rows in set (0.00 sec)
※ >の後の DELETE FROM kohaku WHERE no=59; と SELECT * FROM kohaku; が入力するコマンドです。

 確かに消えましたね。めでたしめでたし。

おわりに

サカイ先生 これで、データベース操作の基本中の基本である「登録・変更・削除・参照」の4つの操作について、ひととおり学びました。データベースを使いこなす道はまだまだ遠いですが、ここまでで学んだことはこれからもずっと重要な下地となります。自然に使いこなせるようになっておきたいものですね。

 次回は、これからみなさんがシステム開発の現場でデータベースを使いこなしていくために学んでいきたい全体像についてお話をしたいと思います。




  • 1
  • 2
  • サカイ先生

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

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

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

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