MySQL DELETE クエリ: テーブルから行を削除する方法

DELETEクエリとは何ですか?

MySQL 削除 コマンドは、データベーステーブルから不要になった行を削除するために使用されます。 テーブルから行全体を削除し、削除された行の数を返します。 削除コマンドは、データベースから一時データや古いデータを削除するのに便利です。

の削除クエリ MySQL 1 回のクエリでテーブルから複数の行を削除できます。これは、データベース テーブルから多数の行を削除する場合に有利です。

行を削除すると、 MySQL 行が削除された場合、回復することはできません。したがって、データベースからデータを削除する前に、データベースのバックアップを作成することを強くお勧めします。これにより、後で必要になった場合にデータベースを復元してデータを表示することができます。

の行を削除する方法 MySQL

行を削除するには MySQLでは、DELETE FROM ステートメントが使用されます。

DELETE FROM `table_name` [WHERE condition];

Pr_media

  • DELETE FROM `table_name` は伝えます MySQL サーバーがテーブルから行を削除します。
  • [WHERE 条件] はオプションであり、DELETE 構文の影響を受ける行数を制限するフィルターを置くために使用されます。 MySQL 行クエリ。

Status WHERE句 では使用されません MySQL 削除クエリ、指定されたテーブル内のすべての行が削除されます。

の例 MySQL クエリの削除

SQL DELETE ステートメントについて詳しく説明する前に、いくつかのサンプル データを movie テーブルに挿入して操作してみましょう。

INSERT INTO  `movies` (`title`, `director`, `year_released`, `category_id`) VALUES ('The Great Dictator', 'Chalie Chaplie', 1920, 7);
INSERT INTO `movies` (`title`, `director`, `category_id`) VALUES ('sample movie', 'Anonymous', 8);
INSERT INTO  movies (`title`, `director`, `year_released`, `category_id`) VALUES ('movie 3', 'John Brown', 1920, 8);

上記のスクリプトを実行すると、ムービー テーブルに 3 つのムービーが追加されます。 レッスンをさらに進める前に、テーブルにすべての映画を用意しましょう。 以下に示すスクリプトはそれを行います。

SELECT * FROM `movies`;

上記のスクリプトを実行すると、次の結果が得られます。

movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
18 The Great Dictator Chalie Chaplie 1920 7
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

Myflix ビデオ ライブラリが会員に「The Great Dictator」を貸し出したくなくなり、データベースから削除することを望んでいるとしましょう。そのムービー ID は 18 です。以下に示すスクリプトを使用してテーブルから行を削除できます。 MySQL 例。

DELETE FROM `movies` WHERE `movie_id` = 18;

上記のスクリプトを実行すると、 MySQL ワークベンチ Myflix に対して、ID 18 の映画をデータベース テーブルから削除します。

映画テーブルの現在のステータスを見てみましょう。

SELECT * FROM `movies`;
movie_id title director year_released category_id
1 Pirates of the Caribean 4 Rob Marshall 2011 1
2 Forgetting Sarah Marshal Nicholas Stoller 2008 2
3 X-Men NULL 2008 NULL
4 Code Name Black Edgar Jimz 2010 NULL
5 Daddy's Little Girls NULL 2007 8
6 Angels and Demons NULL 2007 6
7 Davinci Code NULL 2007 6
9 Honey mooners John Schultz 2005 8
16 67% Guilty NULL 2012 NULL
19 sample movie Anonymous NULL 8
20 movie 3 John Brown 1920 8

注:

  • ID 18 のムービーがクエリ結果セットに返されていません。
  • テーブルの単一の列を削除することはできません。 行全体を削除できます。

削除したい映画のリストがあるとします。 IN とともに WHERE 句を使用できます。

DELETE FROM `movies` WHERE `movie_id`  IN (20,21);

上記のスクリプトを実行すると、ID 20 と 21 のムービーがムービー テーブルから削除されます。

まとめ

  • コマンド「削除」 MySQL、不要になったデータをテーブルから削除するために使用されます。
  • 「WHERE 句」は、DELETE クエリの影響を受ける行数を制限するために使用されます。 MySQL
  • 一度データを削除すると回復できませんので、データを削除する前にバックアップを作成することを強くお勧めします。