MySQLでテーブルデータを削除する方法

MySQLでテーブルデータを削除する方法

MySQL でデータを削除する方法は 2 つあります。1 つは DELETE ステートメント、もう 1 つは TRUNCATE TABLE ステートメントです。 DELETE ステートメントでは、WHERE を通じて削除するレコードを選択できます。 TRUNCATE TABLE を使用すると、テーブル内のすべてのレコードが削除されます。したがって、DELETE ステートメントはより柔軟です。

テーブル内のすべてのレコードをクリアする場合は、次の 2 つの方法を使用できます。

テーブル1から削除

テーブルテーブル1を切り捨てる

2 番目のレコードの TABLE はオプションです。

テーブル内の一部のレコードを削除する場合は、DELETE ステートメントのみを使用できます。

 table1 から削除...;

DELETE に WHERE 句がない場合、TRUNCATE TABLE と同じですが、DELETE は削除されたレコードの数を返すことができますが、TRUNCATE TABLE は 0 を返すという違いが 1 つあります。

テーブルに自動増分フィールドがある場合、WHERE 句なしで TRUNCATE TABLE および DELETE を使用してすべてのレコードを削除すると、自動増分フィールドの開始値は 1 に復元されます。これを実行しない場合は、DELETE ステートメントに WHERE 1 や WHERE true などの永続的な WHERE を追加できます。

   テーブル1から1を削除します。

上記のステートメントは、実行時にすべてのレコードをスキャンします。しかし、この WHERE 条件は常に真であるため、比較は行われません。これにより、自動インクリメントの最大値を維持できますが、すべてのレコードをスキャンするため、実行コストは WHERE 句のない DELETE よりもはるかに大きくなります。

DELETE と TRUNCATE TABLE の最大の違いは、DELETE は WHERE 文を通じて削除するレコードを選択できるものの、実行速度が速くないことです。

切り捨てが削除されると、MySQL ログは記録されず、データを復元できなくなります。 delete の効果は、MySQL テーブル内のすべてのレコードを 1 つずつ削除してすべて削除するのに少し似ていますが、truncate は MySQL テーブルの構造を保持してテーブルを再作成することと同等であり、すべての状態は新しいテーブルと同等です。削除されたレコードの数を返すこともできます。ただし、TRUNCATE TABLE では指定されたレコードを削除できず、削除されたレコードを返すこともできません。しかし、実行は非常に高速です。

標準の SQL ステートメントとは異なり、DELETE は ORDER BY 句と LIMIT 句をサポートしています。これら 2 つの句を使用すると、削除するレコードをより適切に制御できます。たとえば、WHERE 句によってフィルタリングされたレコードの一部だけを削除する場合は、LIMIT を使用できます。最後のいくつかのレコードを削除する場合は、ORDER BY と LIMIT を一緒に使用できます。ユーザー テーブルで、名前が「Mike」に等しい最初の 6 つのレコードを削除するとします。次の DELETE ステートメントを使用できます。

   DELETE FROM users WHERE name = 'Mike' LIMIT 6;

通常、MySQL はどの 6 つのレコードが削除されたかわかりません。安全のために、ORDER BY を使用してレコードをソートできます。
DELETE FROM users WHERE name = 'Mike' ORDER BY id DESC LIMIT 6;

要約する

以上が、MySQL でテーブルデータを削除する方法に関するこの記事の内容のすべてです。皆様のお役に立てれば幸いです。興味のある方は、MySQL の準備原則の詳細な説明、いくつかの重要な MySQL 変数、ORACLE SQL ステートメント最適化テクノロジの重要なポイントの分析などを参照してください。質問がある場合は、いつでもメッセージを残していただければ、編集者がすぐに返信します。

以下もご興味があるかもしれません:
  • PHP で MySQL 内の同じプレフィックスを持つデータ テーブルを一括削除するコード
  • MySQLでテーブルを作成および削除するための詳細な手順と構文
  • MySQL 入門 (IV) テーブルへのデータの挿入、更新、削除
  • MySQLテーブルを削除する方法
  • mysql drop database データベース削除コマンド例の説明
  • MySQLで重複データを見つけて削除し、1つの例だけを残す方法の詳細な説明
  • データベースを削除せずにMySQLのすべてのテーブルを素早く削除する方法
  • MySQL の Delete および Truncate ステートメントの比較
  • MySQLデータベース内の重複データを削除する方法の概要
  • MySQL のデータ削除とデータ テーブル メソッドの例

<<:  Linux での Python のアップグレードと pip のインストールの詳細な説明

>>:  CocosCreator 一般的なフレームワーク設計リソース管理

推薦する

MySQLクエリが遅い理由

目次1. 遅いところはどこですか? 2. 不要なデータをクエリしましたか? 1. 不要なレコードをク...

vue3.0 でカルーセル コンポーネントをカプセル化する手順

目次1: カプセル化の考え方2. 包装工程3: ドットインジケーター4: 左と右のインジケーター5:...

Vueカウンターの実装

目次1. カウンターの実装2. 成果を達成する1. カウンターの実装ページにカウンターを実装するだけ...

JavaScript のガベージコレクションの仕組みの詳細な説明

目次ガベージコレクション (GC) はなぜ必要なのでしょうか?ガベージコレクションとは廃棄物の発生ガ...

React双方向データバインディングの原理についての簡単な説明

目次双方向データバインディングとは双方向データバインディングの実装データ影響ビュービューはデータに影...

MySQL におけるデフォルトの使用法の詳細な説明

NULL および NOT NULL 修飾子、DEFAULT 修飾子、AUTO_INCREMENT 修...

WeChatアプレット認証ログインを処理するエレガントな方法

序文WeChat ミニプログラム プロジェクトでユーザー情報を取得し、ユーザー ログインを実装する場...

MySQL ページングクエリ最適化テクニック

ページング クエリを使用するアプリケーションでは、LIMIT と OFFSET を含むクエリが非常に...

JavaScriptを使用してSMS認証コード間隔を送信する機能を実装する

多くのアプリやウェブサイトでは、ログインやアカウント登録の際にSMS認証コード1を送信する場所があり...

Webpack パッケージング CSS 背景画像パスの問題に対する完璧なソリューション

vue コンポーネントのスタイル タグ内には、背景画像を使用する次の CSS コードがあります。 背...

TSオブジェクトのスプレッド演算子とレスト演算子の詳細な説明

目次概要オブジェクトの残り属性オブジェクトの拡張プロパティオブジェクトの浅いコピーを作成するkeyo...

Linux システムで MySQL データベースの解凍バージョンをインストールして構成する方法

1. ファイルを現在のディレクトリに解凍しますコマンド: tar -zxvf mysql....ta...

Vue データの応答性の概要

データの応答性について話す前に、Vue はデータに対して具体的に何を行うのかという非常に重要な問題を...

Centos6.6 で php7 + nginx 環境をインストールする方法

この記事では、centos6.6 で php7 + nginx 環境をインストールする方法について説...