データ(レコード)を削除するには「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」で条件を指定しない場合は、テーブルのすべてのデータ(レコード)が削除される。