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 個と使用方法のヒントのまとめ

推薦する

JavaScript でプライベート変数を宣言する 2 つの方法

序文JavaScript は、キーワードを使用してプライベート変数を宣言できる他の言語とは異なります...

PSを使用して2分でxhtml+cssウェブサイトのホームページを作成します

xhtml+css のウェブサイト再構築、ウェブ標準などについては、記事が多すぎるので繰り返しません...

IE6はmin-widthを実装している

まず第一に、この効果は古い話題であるはずだということはわかっています。今日ファイルを整理していたら、...

CSS を使用して 3 列のアダプティブ レイアウト (両側は固定幅、中央はアダプティブ) を実現します。

いわゆる 3 列適応レイアウトとは、両側の幅が固定され、中央のブロックの幅が適応されることを意味しま...

XAML でボタンを円として再描画する方法

XAML レイアウトを使用する場合、インターフェイスを Metro 風にするために、一部のボタンでは...

js のループメソッドとさまざまなトラバーサルメソッド

目次forループwhileループdo-while ループループのネストトラバーサルメソッド~のために...

MySQL 5.7.27 のダウンロード、インストール、設定に関する詳細なチュートリアル

目次1. ダウンロード手順2. 環境変数を設定する3. my.iniファイルを設定する4. MySQ...

docker createコマンドの使用方法

docker create コマンドは、イメージに基づいてコンテナを作成できます。このコマンドの効果...

Linux の 5 ステップ ビルド カーネル ツリー

目次0. システムに付属するカーネルツリー1. 環境設定最初のステップステップ2 2. ソースコード...

MySQL 8.0 のメモリ消費の詳細な分析

目次1. innodb_buffer_pool_size 2. innodb_log_buffer_...

Linux での Tomcat8 のインストールとアンインストールに関する詳細なグラフィック チュートリアル

[ Tomcat8 の Linux インストール ] Tomcat をアンインストールする - まず...

Nginx の負荷分散と動的および静的分離の原理と構成

目次1. Nginxは負荷分散の原則を実装する2. Nginxの動的および静的分離の原則Nginx ...

Dockerコンテナのホスト間通信におけるダイレクトルーティングの詳細な説明

概要Docker 自体の現在のデフォルト ネットワークについては、単一ホスト上の異なる Docker...

効率的なMySQLページングの詳細な説明

序文通常、大量のデータを扱う MySQL クエリには「ページング」戦略が採用されます。ただし、ページ...