【MySQL】データ(レコード)を削除する(delete の使い方)

データ(レコード)を削除するには「DELETE」文を使います。

ここでは MySQLコマンド「DELETE」の具体的な使い方を解説していきます。

 

「DELETE」の基本

以下のコマンドを実行すると、指定した条件に該当するデータ(レコード)を削除することができます。

DELETE FROM テーブル名 WHERE 条件;

 

条件に一致するデータ(レコード)を削除する

実際にMySQLサーバーに接続し、データ(レコード)を削除してみましょう。

 

あらかじめ「test」データベースの「users」テーブルに、以下のようにデータが保存されている例で進めていきます。

name age
佐藤 21
鈴木 25
田中 21
山田 32

データを保存するコマンド例

CREATE DATABASE test;
USE test;
CREATE TABLE users (name VARCHAR(100), age INT);
INSERT INTO users (name, age) VALUES ('佐藤', 21);
INSERT INTO users (name, age) VALUES ('鈴木', 25);
INSERT INTO users (name, age) VALUES ('田中', 21);
INSERT INTO users (name, age) VALUES ('山田', 32);
メモ

CREATE DATABASE 文の詳しい使い方はこちら

USE 文の詳しい使い方はこちら

CREATE TABLE 文の詳しい使い方はこちら

INSERT INTO 文の詳しい使い方はこちら

 

それでは「age」カラムの値が 25 以上のデータ(レコード)を削除してみましょう。コマンドは以下。

DELETE FROM users WHERE age >= 25;

 

コマンドを実行して、Query OK という表示が出てきたら、データが削除できたことになります。

メモ

WHERE の詳しい使い方はこちら

 

念のため テーブルを確認してみると、該当する2件のデータが削除されていることが確認できました。

SELECT * FROM users;

 

テーブルの すべてのデータ(レコード)を削除する

「WHERE」で条件を指定しない場合は、テーブルにある すべてのデータ(レコード)が削除されます。

以下のようにすると、「users」テーブルの すべてのデータが削除されます。

DELETE FROM users;
メモ

ちなみに大量のデータがある場合は、

TRUNCATE TABLE users;

というコマンドのほうが高速です。

TRUNCATE 文の詳しい使い方はこちら(作成中)。

 

コマンドを実行して、Query OK という表示が出てきたら、データが削除できたことになります。

 

念のため テーブルを見ると、以下のように内容が空であることが確認できました。

SELECT * FROM users;

メモ

「WHERE」の指定を忘れることによって、間違えて全てのデータを削除してしまわないように注意。

最初に「SELECT」文で対象のデータを取得し、そこから「DELETE」文に書き換えるようにすると、不用意な事故を防ぐことができます。

 

まとめ

以上、MySQLコマンド「DELETE」の使い方でした!

 

ここまでの内容をまとめておきます。

  • 「DELETE」コマンドでデータ(レコード)を削除することができる。
  • 「WHERE」で条件を指定しない場合は、テーブルのすべてのデータ(レコード)が削除される。

 

MySQL入門メニュー