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
- 一度データを削除すると回復できませんので、データを削除する前にバックアップを作成することを強くお勧めします。