MySQL でテーブルを削除する 3 つの方法 (要約)

MySQL でテーブルを削除する 3 つの方法 (要約)

ドロップテーブル

ドロップはテーブル情報を直接削除するため、最も高速ですが、データを取得することはできません。

たとえば、ユーザー テーブルを削除するには、次のようにします。

テーブルユーザーを削除します。

切り捨て (テーブル)

truncate はテーブル データを削除しますが、その構造は削除しません。速度は 2 番目に速いですが、where と一緒に使用することはできません。

たとえば、ユーザー テーブルを削除するには、次のようにします。

テーブルユーザーを切り捨てます。

削除する

delete はテーブル構造を削除せずにテーブル内のデータを削除します。これは最も遅いですが、指定された行を削除するために where と一緒に使用できます。

たとえば、ユーザーテーブル内のすべてのデータを削除する

ユーザーから削除します。

ユーザーテーブル内の指定されたレコードを削除します

user_id = 1 のユーザーから削除します。

3つの方法の違い

類似点

  • 切り捨て、where 句なしの削除、およびドロップはテーブル内のデータを削除します。
  • drop と truncate はどちらも DDL ステートメント (データ定義言語) であり、実行後に自動的にコミットされます。

違い

  • ステートメントの種類: delete ステートメントはデータベース操作言語 (DML) であり、truncate および drop はデータベース定義言語 (DDL) です。
  • 効率: 一般的に言えば、ドロップ > 切り捨て > 削除の順です。
  • テーブル構造を削除するかどうか: 切り捨てと削除ではデータのみが削除され、テーブル構造は削除されません。削除後、切り捨てではインデックスが再構築されます (新しいデータが挿入された後、ID は 0 から始まります)。一方、削除ではインデックスは削除されません (削除されたデータのインデックスの後、新しく挿入されたデータは増加し続けます)。ドロップ ステートメントでは、従属制約、トリガー、インデックスなどを含むテーブル構造が削除されます。
  • セキュリティ: ドロップと切り捨ては MySQL ログを記録せず、ロールバックできませんが、削除は MySQL ログを記録し、ロールバックできます。
  • 戻り値: delete は操作後に削除されたレコードの数を返しますが、truncate は 0 または -1 (成功した場合は 0、失敗した場合は -1) を返します。

クイックファクト

削除と削除元の違い

1つのテーブルのみを削除する場合、効果は同じです。他のテーブルを結合する必要がある場合は、fromを使用する必要があります。

tb1 m から tb1 を削除します (id は tb2 から選択します)。

使用状況の概要

  • テーブル構造を削除する場合は、drop を使用します。
  • テーブル構造を維持しながらすべてのレコードを削除する場合は、truncate を使用します。
  • テーブル構造を維持しながら一部のレコードを削除する場合は、delete を使用します。

これで、MySQL でテーブルを削除する 3 つの方法 (概要) に関するこの記事は終了です。MySQL でテーブルを削除する方法の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。

以下もご興味があるかもしれません:
  • MySQL にテーブルが存在するかどうかを確認し、それを一括で削除する方法
  • MySQL でデータを削除してもテーブル ファイルのサイズが変更されないのはなぜですか?
  • MySQL で重複レコードを見つけて削除する方法
  • MySQL で大量のデータ (数千万) を素早く削除するためのいくつかの実用的なソリューションの詳細な説明
  • MySQLサービスを削除する具体的な方法
  • MySQL の重複データの処理方法 (防止と削除)
  • MySQL データベース操作 (作成、選択、削除)
  • Windows で削除された MySQL 8.0.17 のルート アカウントとパスワードを回復する方法
  • Linux で MySQL 8.0 サービスを完全に削除する方法
  • MySQL テーブル削除操作の実装 (delete、truncate、drop の違い)
  • MySQL で削除されたレコードが有効にならない理由のトラブルシューティング

<<:  Nginx Rewrite の使用シナリオと設定方法の分析

>>:  一般的な JavaScript 文字列メソッド 28 個と使用方法のヒントのまとめ

推薦する

MySQLにおけるACIDトランザクションの実装原理の詳細な説明

導入いつものように、シーンから始めましょう〜インタビュアー:「トランザクションの4つの特性をご存知で...

Docker は MySQL をインストールし、中国語の文字化けの問題を解決します

目次1. MySQLイメージを取得する2. ダウンロードが完了したか確認する3. MySQLはローカ...

MySQL における INSERT INTO SET の利点

MySQL データベースにデータを挿入します。以前はよく使われていた INSERT INTO テーブ...

jQueryは広告の表示と非表示のアニメーションを実装します

数秒後に広告が表示されて消えることがよくあります。この機能を実装するには、JQuery フレームワー...

Linuxでプロセスが占有するポート番号を表示する

Linux システム管理者にとって、サービスがポートに正しくバインドされているか、またはポートをリッ...

エラー 2002 (HY000): ソケット '/tmp/mysql.sock' 経由でローカル MySQL サーバーに接続できません

エラーメッセージ:エラー 2002 (HY000): ソケット '/tmp/mysql.so...

Web スライスとは何ですか?

IE8 の新機能 Web スライス (Web スライス) Microsoft は 3 月 20 日...

js を使用して過去 1 週間、1 か月、3 か月の時間を取得する簡単な例

目次過去1週間の時間を取得する過去1か月の時間を取得する過去3か月分を取得新しい Date() と ...

Vue3 の ref toRef と toRefs の違いを理解する方法

目次1. 基本1.参照2. 参照3. 参照4. 最適な使い方2. 詳細な1. なぜrefが必要なのか...

MySQLは数百万のシミュレーションデータ操作コードを自動的に挿入します

私はデータベースツールとして Navicat を使用しています。他のものも同様です。 1. Navi...

Ubuntu 18.04 で apt ソースを Alibaba Cloud ソースに変更する詳細なプロセス

目次序文: Ubuntu 18.04 は apt ソースを Alibaba Cloud ソースに変更...

Q&A: XML と HTML の違い

Q: xml と html の違いがわかりません。違いは何ですか? A: XMLと HTML の違い...

Linux 基本チュートリアル: 特別な権限 SUID、SGID、SBIT

序文Linux のファイルまたはディレクトリの権限については、共通の rwx 権限を知っておく必要が...

backgroundImage を使用して画像カルーセルの切り替えを解決する詳細な説明

単一のDOMノードでカルーセルを実装するbackgroundImage を使用すると、複数の画像を追...