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 一般的なフレームワーク設計リソース管理

推薦する

Google Web Fonts でウェブサイトに無制限のフォントを追加

長い間、リソースの制約により、使用できるフォントが限られていたため、Web サイトの開発は妨げられて...

JavaScript の新しい要素トラバーサルプロパティを使用して子要素をトラバースする方法を学びます

目次1. ChildNodes属性のトラバーサル2. 要素シリーズ属性のトラバーサル以前は、chil...

Django が uwsgi+nginx プロキシで静的リソースにアクセスできない問題の解決方法

uwsgi+nginx プロキシ Django をデプロイする場合、uwsgi を使用したアクセスは...

CentOS 6.5 i386 インストール MySQL 5.7.18 詳細チュートリアル

ほとんどの人はMySQLをコンパイルしてシステムディレクトリに置きますが、私のやり方はコンパイルした...

VUE無限レベルツリーデータ構造表示の実装

目次コンポーネントの再帰呼び出しレンダリングメソッドの使用プロジェクトに取り組んでいると、左側のメニ...

MySQL累積計算実装方法の詳しい説明

目次序文需要分析MySQL ユーザー変数累積計算にMysqlユーザー変数を使用する要約するこの記事で...

Idea で Tomcat のソースコードデバッグを開始し、デバッグのために Tomcat に入る方法

idea 開発ツールを使用してコードをデバッグする場合、Java Web プロジェクトで、Web コ...

一般的な Linux の問題に対する解決策の概要

1. VMwareでCentos7を接続し、固定IPを設定する1) まず、仮想イメージ名を右クリック...

zabbix を使用して ogg プロセスを監視する (Linux プラットフォーム)

以前作成されたデータベースの ogg プロセスは、発見されるまでの約半月間ダウンしていました。起動で...

VirtualBox での CentOS 8.1 仮想マシンのインストールを最小限に抑える詳細なチュートリアル

1. 関連ツールと画像をダウンロードするダウンロードリンクバーチャルボックス: https://do...

HTML 基本ノート (推奨)

1. ウェブページの基本構造: XML/HTML コードコンテンツをクリップボードにコピー<...

CSS 水平方向の中央揃えと最大幅の制限

CSS レイアウトとスタイルに関する質問: 水平方向の中央揃えと最大幅の制限のバランスをとる方法最近...

実践で遭遇するフロントエンドの基本(HTML、CSS)

1. div css マウスの手の形は cursor:pointer; です。 2. HTML の相...

IIS7~IIS8.5 サーバープロトコルヘッダーの削除または変更

要件: IIS 7、7.5、8.0、8.5、および ASP.NET で HTTP 応答ヘッダーを削除...

case when文のエラー問題の詳細な説明

序文MySQL データベースでは、if else のような判断演算を使用することがあります。では、M...