logo

MySQL DELETE ステートメント

MySQL DELETE ステートメントは、データベースで不要になったレコードを MySQL テーブルから削除するために使用されます。 MySQL のこのクエリは、テーブルから行全体を削除し、削除された行の数を生成します。 。また、単一のクエリ内でテーブルから複数のレコードを削除することもできるため、テーブルから多数のレコードを削除する場合に有益です。 delete ステートメントを使用すると、条件に基づいてデータを削除することもできます。

このクエリを使用してレコードを削除すると、復元することはできません 。したがって、テーブルからレコードを削除する前に、次のことをお勧めします。 データベースのバックアップを作成する 。データベースのバックアップにより、将来必要になったときにいつでもデータを復元できます。

構文:

以下は、DELETE ステートメントの使用方法を示す構文です。

モニターサイズの調べ方
 DELETE FROM table_name WHERE condition; 

上記のステートメントでは、最初にデータを削除するテーブル名を指定する必要があります。次に、 WHERE 句でレコードを削除する条件を指定する必要がありますが、これはオプションです。ステートメントで WHERE 句を省略すると、このクエリはデータベース テーブルからレコード全体を削除します。

単一の DELETE クエリを使用して複数のテーブルからレコードを削除する場合は、 参加する DELETE ステートメントを使用します。

削除された行の数を知らずにテーブルからすべてのレコードを削除したい場合は、 テーブルの切り捨て より良いパフォーマンスをもたらすステートメント。

DELETE ステートメントがどのように機能するかを理解しましょう。 MySQL さまざまな例を通して。

MySQL DELETE ステートメントの例

ここで使用するのは、 '従業員' そして '支払い' DELETE ステートメントのデモ用の表。 Employees テーブルと Payment テーブルに次のデータが含まれているとします。

mysql削除クエリ
mysql削除クエリ

従業員を削除したい場合は、 emp_id は 107 です の場合は、DELETE ステートメントを WHERE 句とともに使用する必要があります。以下のクエリを参照してください。

C#の文字列比較
 mysql> DELETE FROM Employees WHERE emp_id=107; 

クエリの実行後、以下の画像のような出力が返されます。レコードが削除されたら、SELECT ステートメントを使用してテーブルを確認します。

Javaで文字列を逆にする
mysql削除クエリ

テーブルからすべてのレコードを削除する場合は、DELETE ステートメントで WHERE 句を使用する必要はありません。以下のコードと出力を参照してください。

mysql削除クエリ

上記の出力では、すべての行を削除すると、Employees テーブルが空になることがわかります。これは、選択したテーブルに使用可能なレコードがないことを意味します。

MySQL の DELETE 句と LIMIT 句

MySQL Limit 句は、テーブル内のレコード全体をフェッチするのではなく、結果セットから返される行数を制限するために使用されます。テーブルから削除する行数を制限したい場合があります。その場合は、 リミット 次のような条項:

 DELETE FROM table_name WHERE condition ORDER BY colm1, colm2, ... LIMIT row_count; 

MySQL テーブル内の行の順序は指定されていないことに注意してください。したがって、常に使用する必要があります 注文方法 LIMIT 句を使用するときに句を使用します。

例えば の場合、次のクエリはまず従業員を名前のアルファベット順に並べ替え、テーブルから最初の 3 人の従業員を削除します。

 mysql> DELETE FROM Employees ORDER BY name LIMIT 3; 

以下の出力が得られます。

mysql削除クエリ

MySQL の DELETE 句と JOIN 句

JOIN 句は、MySQL に 2 つ以上のテーブルを追加するために使用されます。単一のクエリ内で複数のテーブルからレコードを削除する場合は、DELETE ステートメントに JOIN 句を追加します。以下のクエリを参照してください。

 mysql> DELETE Employees, Payment FROM Employees INNER JOIN Payment ON Employees.emp_id = Payment.emp_id WHERE Employees.emp_id = 102; 

出力:

実行後、以下の画像のような出力が表示されます。

マウススクロールが機能しない
mysql削除クエリ

JOIN 句を使用した DELETE ステートメントの詳細については、次の手順を参照してください。 ここをクリック