LoginSignup
1
0

More than 1 year has passed since last update.

【SQL】deleteでレコードを削除をする

Last updated at Posted at 2023-05-23

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に存在しないレコードが削除される

参考資料

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0