delete
<構文>
.sql
delete from テーブル名 [where 条件];
Example
.sql
delete from products_categories;
products_categoriesテーブルの中にあるすべての行が削除されますが、テーブル自体は削除されません。削除されたデータは復元できないため、実行前に注意が必要
whereを使用して条件指定して行を削除する
▼ whereを使用して条件指定して行を削除する
<構文>
.sql
DELETE FROM テーブル名
WHERE 条件;
指定した条件に合致するレコードが削除される
Example
▼ productsテーブル内の価格が500以下の商品を全て削除
.sql
DELETE FROM products
WHERE price <= 500;
削除処理を行う際は、データのバックアップや削除条件の慎重な設定が重要
誤ってデータを削除してしまわないように注意すること
Where句を指定しないと、テーブルの行が全て削除されてしまうので注意
delete x サブクエリ
▼ productsテーブルからproducts_categoriesテーブルの特定のカテゴリに関連する商品を削除
.sql
DELETE FROM products
WHERE id IN (SELECT id FROM products_categories WHERE category = '削除対象カテゴリ');
products_categoriesテーブルのcategory列が指定したカテゴリと一致するidが含まれるproductsテーブルのレコードが削除される
▼ productテーブルからorder_detailsテーブルに存在しない商品を削除 (一つも売れていないものを削除)
.sql
DELETE FROM products
WHERE id NOT IN (
SELECT product_id FROM order_details GROUP BY product_id
);
productsテーブルからorder_detailsテーブルに関連しない商品を削除
サブクエリの結果であるproduct_idがproductsテーブルのidに存在しないレコードが削除される