テーブルの行(レコード)をすべて削除、または 指定した行のみを削除する方法について紹介していきます
前提条件
商品一覧を管理するテーブルから指定した行、またはすべての行を削除する
使用するテーブル:productsテーブル
+----+-----------------+-------+
| id | name | price |
+----+-----------------+-------+
| 1 | ドックフード001 | 1000 |
| 2 | ドックフード002 | 2000 |
| 3 | ドックフード003 | 1500 |
| ・ | ・ | ・ |
| ・ | ・ | ・ |
| ・ | ・ | ・ |
| 9 | ドックフード009 | 3000 |
| 10 | ドックフード010 | 5000 |
+----+-----------------+-------+
10 rows in set (0.000 sec)
テーブルから1行を指定して削除
構文
delete from テーブル名 where 条件;
コードの見方
テーブル名:削除したい行(レコード)のあるテーブルを指定する
条件:削除したい行を特定するための条件を指定する
SQL文
delete from products where id =10;
テーブル名にはproductsを指定
条件にはidカラムが10となっているレコードを指定します
コードを入力してテーブル情報を確認すると
+----+-----------------+-------+
| id | name | price |
+----+-----------------+-------+
| 1 | ドックフード001 | 1000 |
| 2 | ドックフード002 | 2400 |
| 3 | ドックフード003 | 1500 |
| 4 | ドックフード004 | 1800 |
| 5 | ドックフード005 | 2500 |
| 6 | ドックフード006 | 1800 |
| 7 | ドックフード007 | 4000 |
| 8 | ドックフード008 | 6500 |
| 9 | ドックフード009 | 3000 |
+----+-----------------+-------+
9 rows in set (0.001 sec)
指定した行(レコード)を削除することができました
注意!
- 条件を指定しないでdelete文を実行してしまうとすべての行が削除されてしまいます。条件を設定して特定の行を削除したい場合には十分に注意しましょう
指定したテーブルからすべての行を削除する
構文
delete from テーブル名;
条件などは付けずにテーブル名のみを指定する
SQL文
delete from products;
テーブル名にはproductsを指定
コードを入力してテーブル情報を確認すると
select * from products;
Empty set (0.025 sec)
すべての行(レコード)を削除することができました。
Point!
- 上記の結果からもわかる通り、すべての行を削除してもテーブルごと削除しているわけではありません。行のみを削除していることに注意