テーブルは「世帯主データ」テーブルと「住民データ」テーブルを使います。
テーブルの関連性は次の通りとします。
データは次の通りです。
【世帯主データ】
【住民データ】
小川さん一家が引越しをすることにしました。
このため、世帯主データと住民データから、小川さん一家のデータを削除することにします。
2つのテーブルから条件に一致したデータを1回のSQLで削除する方法についてみてみましょう。
最初に削除したい該当データが正しく選択できているのか?をSELECTを使って試します。
このSQLをDELETEを使って変更し、実行します。
※2個以上のテーブルを同時に削除する場合は「USING」を使います。
(JOINは別です。)
DELETE FROM
テーブル1, テーブル2, … ,テーブルn
USING
テーブル1, テーブル2, … ,テーブルn
WHERE
条件
|
では結果を見てみましょう。
【世帯主データ】
【住民データ】
ご覧のとおり、「小川」さん一家のデータが削除されています。
次に「join」 を使用した削除を見てみましょう。
使用するテーブルおよびデータは同じとします。
※ロールバックをしました。
では「JOIN」を用いてSELECTしてみます。
今回は等結合である「INNER JOIN」を使います。
INNER JOIN といっても普通のSELECTの書き方とほとんど変わりません。
では、DELETEに変更して削除してみましょう。
JOINでは「USING」を使いません。
次の形式でDELETEを実行します。
DELETE
テーブル1, テーブル2, …, テーブルn
FROM
テーブル1
INNER JOIN
テーブル2
ON
条件
…
INNER JOIN
テーブルn
ON
条件
|
これで削除が実行できました。
削除結果は同じなので割愛します。
|
|
| 戻る | | | | |  | | | |
著作権情報 | 本ホームページに掲載されている情報等については、いかなる保証もいたしません。 本ホームページを通じて入手したいかなる情報も複製、販売、出版または使用させたり、 または公開したりすることはできません。 当方は、本ホームページを利用したいかなる理由によっての障害等が発生しても、 その結果本ホームページを利用された本人または他の第三者が被った損害について 一切の責任を負わないものとします。 |
|