ywork2020.com

Title

レコードを削除する

目次 (INDEX)

DELETE とは

ここで説明する DELETE とは次の語句からなる SQL です。
delete
読み: デリート
意味: 削除、消去

目次に戻る

DELETE文の概要

DELETE文はデータテーブルに登録してあるデータレコードを削除するために使用します。

通常、レコード消去文を使う場合は、全てのレコードを削除する場合を除き、 WHERE句 を使って削除するレコードを特定します。

また、削除が確定したレコードを元に戻すことはできませんので、 レコード削除する場合はトランザクションを効かせてからの実行が望ましいと思われます。

目次に戻る

構文

DELETE FROM テーブル名 WHERE 削除レコードの条件;

目次に戻る

サンプルコードと実行結果

DELETE文でレコードを削除する場合にはFROM句で対象テーブルの名前を指定してから、 WHERE句で削除対象となるレコードの条件を指定します。 仮にWHERE句を使用しなかった場合には、全てのレコードが削除対象となります。

それでは、テーブルからレコードが削除される状態をサンプルで見ていきたいと思います。

番号(主キー)氏名メール
1太郎tarou@example.net
2花子hanako@example.net
3次郎jirou@example.net
4花子hanako@example.net

上記のサンプルテーブルに重複した「花子」さんのレコードがありますので、片方のレコードを削除します。 それでは次のクエリを使って、番号=4のレコードを削除しようと思います。

DELETE FROM テーブル名 WHERE 番号=4;

実行結果は下記の通り、番号列のデータが4の条件に該当したレコードが削除されています。

番号(主キー)氏名メール
1太郎tarou@example.net
2花子hanako@example.net
3次郎jirou@example.net

今回はサンプルの処理としては成功していますが、もし仮に氏名=花子を条件にしてしまったなら、 2と4のレコードが削除対象となります。それが条件の狙いなら問題ありませんが、 DELETE文のWHERE句の使い方には気を付けて下さい。

目次に戻る

トランザクションについて

トランザクションとはデータベースでデータの追加処理や更新処理をする際に人為的ミスやネットワークエラーなどにより、更新の失敗が あった場合に、処理の一時的なバックアップ機能を使い元のデータに復元することを目的としています。

トランザクションについての基本的なお話しは UPDATE文 のページの「トランザクションについて」の項目で解説していますので、興味がある方はお手数ですがリンクからの参照をお願いします。

目次に戻る

SQL の仕様上の注意点

※ SQL の予約句はアルファベットの大文字と小文字を区別しませんが、 任意で作成したデータベースやテーブル、カラムの名前などは区別されるので注意が必要です。

目次に戻る