サイト名変更・お引越しのお知らせ

MySQLでデータ削除(DELETE)方法を解説

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データ取得

productsテーブルのデータはこんな感じになっています。

本記事内ではこちらのデータを削除していきます。

データ削除方法

データの削除には、DELETE文を使います。

複数方法があるので、それぞれ解説します。

特定のレコードの削除

特定のレコードを指定してデータを削除するにはこのように書きます。

DELETE FROM テーブル名 WHERE 条件;

idが1のレコードを削除

mysql> DELETE FROM products WHERE id = 1;

productsデータ取得

IDが1のレコードが削除されていることが分かりますね。

後ほど解説しますが、WHEREを指定しない場合は全てのレコードが削除されるので注意しましょう。

複数のレコードのデータを削除

複数のレコードのデータを削除する方法を解説します。

複数のデータを削除するには、WHEREを指定せずにDELETE文を実行すればOKです。

全てのレコードを削除

mysql> DELETE FROM products;

productsデータ取得

productsテーブルの全てのレコードが削除されたことが確認できますね。

レコードの件数を指定して削除

LIMIT文を使うことで、レコードの件数を指定して削除ができます。

mysql> DELETE FROM products LIMIT 2;

モグモグさん

このケースでは、上から2つのレコードが削除されます。

まとめ

MySQLでデータを削除(DELETE)する方法を解説しました。

基本的な内容ですが、使い方を覚えておきましょう。

モグモグさん

実際のデータを扱う場合、DELETE系は危険な処理なので慎重に実行しましょう。