MySQLでデータを削除(DELETE)する方法を解説します。
- MySQL 8.0
環境準備
MySQLの環境を準備しましょう。
すでにある方はスキップで良いですが、まだの方はこちらの記事でローカル環境にDockerを使ってMySQLの環境を作成しましょう。
Dockerでデータを永続化しつつMySQLの環境を構築する方法を解説
さらに準備として、test
データベースにproducts
テーブルを作成しサンプルのデータを追加しておきます。
testデータベースを作成
mysql> create database test;
productsテーブルを作成
mysql> CREATE TABLE `products` (
`id` bigint(20) unsigned NOT NULL AUTO_INCREMENT,
`name` varchar(50),
`category` varchar(10),
PRIMARY KEY (`id`)
);
サンプルデータを追加
mysql> INSERT INTO products (name, category) VALUES ('apple', 'fruits'), ('orange', 'fruits'), ('broccoli', 'vegetables');
productsテーブルのデータはこんな感じになっています。
本記事内ではこちらのデータを削除していきます。
データ削除方法
データの削除には、DELETE
文を使います。
複数方法があるので、それぞれ解説します。
特定のレコードの削除
特定のレコードを指定してデータを削除するにはこのように書きます。
DELETE FROM テーブル名 WHERE 条件;
idが1のレコードを削除
mysql> DELETE FROM products WHERE id = 1;
IDが1のレコードが削除されていることが分かりますね。
後ほど解説しますが、WHEREを指定しない場合は全てのレコードが削除されるので注意しましょう。
複数のレコードのデータを削除
複数のレコードのデータを削除する方法を解説します。
複数のデータを削除するには、WHERE
を指定せずにDELETE
文を実行すればOKです。
全てのレコードを削除
mysql> DELETE FROM products;
productsテーブルの全てのレコードが削除されたことが確認できますね。
レコードの件数を指定して削除
LIMIT
文を使うことで、レコードの件数を指定して削除ができます。
mysql> DELETE FROM products LIMIT 2;
モグモグさん
このケースでは、上から2つのレコードが削除されます。
まとめ
MySQLでデータを削除(DELETE)する方法を解説しました。
基本的な内容ですが、使い方を覚えておきましょう。
モグモグさん
実際のデータを扱う場合、DELETE系は危険な処理なので慎重に実行しましょう。