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

推薦する

Linux における mv コマンドの高度な使用例

序文mv コマンドは、move の略語で、ファイルを移動したり、ファイル名を変更したり (ファイルの...

Windows10にMySQL5.6.35データベースを2つインストールする

次のように、Win10 での 2 つの MySQL5.6.35 データベースのインストールを記録しま...

jsは水平および垂直スライダーを実現します

最近、練習プロジェクトをしていたときにスライダーを使う必要があったので、調べてみました。まず、水平ス...

Windows CVE-2019-0708 リモート デスクトップ コード実行脆弱性の再現問題

1. 脆弱性の説明マイクロソフトは2019年5月15日、CVE番号CVE-2019-0708のWin...

KVM ベースの SRIOV パススルー構成とパフォーマンス テストの詳細な説明

SRIOVの導入、VFパススルー構成、パケット転送速度性能テスト目次1. SRIOVの紹介2. 環境...

VMware で Nginx+KeepAlived クラスタ デュアルアクティブ アーキテクチャを展開する際の問題と解決策

序文負荷分散には nginx を使用します。アーキテクチャのフロントエンドまたは中間層として、トラフ...

Docker で FastDFS ファイル システムを構築する (マルチイメージ チュートリアル)

目次FastDFSについて1. 画像を検索する2. イメージをインストールする3.1. 必要なディレ...

CSS3は赤い封筒を振る効果を実現します

赤い封筒の揺れ効果を実現するには要件があります。これまでやったことがないので、記録しておきます。ヘヘ...

JS 配列の重複を排除する 9 つの高度な方法 (実証済みで効果的)

序文一般的な方法はここには記載されていませんが、等しいかどうかを判断するための二重ループや、比較のた...

Pagoda Panel のインストール時にサーバーがデータベースにリモート接続できない問題の解決策

自分のウェブサイトを構築する予定なので、618 プロモーションを利用して Tencent Cloud...

1つの記事でJSONPの原理と応用を理解する

目次JSONPとはJSONP 原則JSONP実装1. Ajaxでクロスドメインリクエストが行われると...

ボタントリガーイベントを使用して背景色の点滅効果を実現します

背景色の点滅効果を実現するには、次のコードを <body> 領域に追加するだけです。コー...

ネイティブ JavaScript 継承方法とその長所と短所の詳細な説明

目次序文プロトタイプ継承アドバンテージ欠点コンストラクタの継承アドバンテージ欠点組み合わせ継承寄生的...

Vue コンポーネントでのアンチシェイクとスロットリングの使用例の分析

入力ボックスへのユーザー入力、ウィンドウのサイズ変更、スクロール、Intersection Obse...

HTML テーブル マークアップ チュートリアル (2): テーブル境界属性 BORDER

デフォルトでは、テーブルの境界線は 0 ですが、テーブルの境界線を設定できます。基本的な構文<...