mysql——構文の削除
単一テーブルの構文:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name [WHERE where_definition] [ORDER BY ...] [LIMIT row_count]
複数テーブルの構文:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] tbl_name[.*] [, tbl_name[.*] ...] FROM table_references [WHERE where_definition]
または:
DELETE [LOW_PRIORITY] [QUICK] [IGNORE] FROM tbl_name[.*] [, tbl_name[.*] ...] USING table_references [WHERE where_definition]
tbl_name の一部の行は、where_development で指定された条件を満たします。 DELETE はこれらの行を削除するために使用され、削除されたレコードの数を返します。
WHERE 句を指定せずに DELETE ステートメントを作成すると、すべての行が削除されます。削除された行の数を知りたくない場合は、TRUNCATE TABLE を使用するより速い方法があります。
削除した行に AUTO_INCREMENT 列の最大値が含まれている場合、その値は BDB テーブルで再利用されますが、MyISAM テーブルや InnoDB テーブルでは再利用されません。 AUTOCOMMIT モードで DELETE FROM tbl_name (WHERE 句なし) を使用してテーブル内のすべての行を削除すると、シーケンスはすべてのテーブル タイプ (InnoDB と MyISAM を除く) で並べ替えられます。
MyISAM テーブルと BDB テーブルの場合、複数列キーワードに AUTO_INCREMENT セカンダリ列を指定できます。この場合、MyISAM テーブルであっても、シーケンスの先頭から削除された値が再度使用されます。
DELETE ステートメントは次の修飾子をサポートしています:
· LOW_PRIORITY を指定すると、他のクライアントがこのテーブルを読み取らなくなるまで DELETE の実行が遅延されます。
· MyISAM テーブルの場合、QUICK キーワードを使用すると、ストレージ エンジンは削除プロセス中にインデックス終了ノードをマージしません。これにより、一部の種類の削除操作が高速化されます。
· 行の削除プロセス中に、IGNORE キーワードにより MySQL はすべてのエラーを無視します。 (分析フェーズ中に発生したエラーは通常の方法で処理されます。) このオプションの使用により無視されたエラーは、警告として返されます。
MyISAM テーブルでは、削除されたレコードはリンクされたリストに保持され、後続の INSERT 操作では古いレコードの場所が再利用されます。未使用のスペースを再利用してファイル サイズを減らすには、OPTIMIZE TABLE ステートメントまたは myisamchk アプリケーションを使用してテーブルを再編成します。 OPTIMIZE TABLE の方がシンプルですが、myisamchk の方が高速です。
QUICK 修飾子は、削除操作中にインデックス終了ノードがマージされるかどうかに影響します。 DELETE QUICK は、削除された行のインデックス値が、後で挿入された行の同様のインデックス値に置き換えられる場合に最も役立ちます。この場合、削除された値によって残された穴は再利用されます。
フルではないインデックス ブロックがインデックス値の特定の範囲にまたがる場合、新しい挿入が発生します。削除された値によってインデックス ブロックがアンダーフィルされる場合、DELETE QUICK は効果がありません。この場合、QUICK を使用すると、未使用のインデックスに無駄なスペースが生じる可能性があります。以下はこの状況の例です:
1. インデックス付き AUTO_INCREMENT 列を含むテーブルを作成します。
2. テーブルに多数のレコードを挿入します。挿入ごとにインデックス値が生成され、インデックスの上位に追加されます。
3. DELETE QUICK を使用して、列の下端からレコードのグループを削除します。
この場合、削除されたインデックス値に関連するインデックスブロックはアンダーフィルになりますが、QUICKの使用により、これらのインデックスブロックは他のインデックスブロックとマージされません。新しい値が挿入されると、新しいレコードには削除された範囲内のインデックス値が含まれないため、これらのインデックス ブロックはアンダーフィルされたままになります。さらに、後で QUICK を含めずに DELETE を使用した場合でも、削除されたインデックス値の一部がこれらの未埋めのブロック内または隣接する場合を除き、これらのインデックス ブロックは未埋めのままです。このような場合、未使用のインデックス領域を再利用したい場合は、OPTIMIZE TABLE を使用します。
テーブルから多くの行を削除する予定がある場合は、DELETE QUICK と OPTIMIZE TABLE を組み合わせて使用すると、処理を高速化できます。これにより、多数のインデックス ブロックのマージ操作を実行するのではなく、インデックスが再作成されます。
MySQL の DELETE 用の唯一の LIMIT row_count オプションは、制御コマンドがクライアントに返される前に削除する最大行数をサーバーに指示するために使用されます。このオプションは、DELETE ステートメントに時間がかかりすぎないようにするために使用されます。関連する行の数が LIMIT 値より少なくなるまで、DELETE ステートメントを繰り返すことができます。
DELETE ステートメントに ORDER BY 句が含まれる場合、行は句で指定された順序で削除されます。この句は、LIMIT と組み合わせて使用した場合にのみ機能します。たとえば、次の句は、WHERE 句に対応する行を検索し、分類に timestamp_column を使用し、最初の (最も古い) 行を削除するために使用されます。
DELETE FROM somelog WHERE user = 'jcole' ORDER BY timestamp_column LIMIT 1;
複数の Deletes 行に基づいて、1 つの DELETE ステートメントで複数のテーブルを指定できます。テーブル内の特定の条件に基づいた 1 つまたは複数のテーブル。ただし、複数テーブルの DELETE ステートメントでは ORDER BY または LIMIT を使用できません。
table_references セクションには、ユニオンに含まれるテーブルがリストされます。
最初の構文では、FROM 句の前にリストされているテーブル内の対応する行のみを削除します。 2 番目の構文では、FROM 句 (USING 句の前) にリストされているテーブル内の対応する行のみが削除されます。これにより、多くのテーブルから行を同時に削除し、他のテーブルを使用して検索できるようになります:
DELETE t1, t2 FROM t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;
または:
DELETE FROM t1, t2 USING t1, t2, t3 WHERE t1.id=t2.id AND t2.id=t3.id;
削除する行を検索する場合、これらのステートメントは 3 つのテーブルすべてを使用しますが、 table t1 と table t2 の対応する行を削除します。
上記の例は、カンマ演算子を使用した内部結合を示していますが、複数テーブルの DELETE ステートメントでは、LEFT JOIN など、SELECT ステートメントで許可されているすべての種類の結合を使用できます。
本语法允许在名称后面加.*,以便与Access相容。
如果您使用的多表DELETE语句包括InnoDB表,并且这些表受外键的限制,则MySQL优化程序会对表进行处理,改变原来的从属关系。在这种情况下,该语句出现错误并返回到前面的步骤。要避免此错误,您应该从单一表中删除,并依靠InnoDB提供的ON DELETE功能,对其它表进行相应的修改。
注释:当引用表名称时,您必须使用别名(如果已给定):
DELETE t1 FROM test AS t1, test2 WHERE ...
进行多表删除时支持跨数据库删除,但是在此情况下,您在引用表时不能使用别名。举例说明:
DELETE test1.tmp1, test2.tmp2 FROM test1.tmp1, test2.tmp2 WHERE ...
目前,您不能从一个表中删除,同时又在子查询中从同一个表中选择。

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

Video Face Swap
完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











次の手順でphpmyadminを開くことができます。1。ウェブサイトコントロールパネルにログインします。 2。phpmyadminアイコンを見つけてクリックします。 3。MySQL資格情報を入力します。 4.「ログイン」をクリックします。

MySQLはオープンソースのリレーショナルデータベース管理システムであり、主にデータを迅速かつ確実に保存および取得するために使用されます。その実用的な原則には、クライアントリクエスト、クエリ解像度、クエリの実行、返品結果が含まれます。使用法の例には、テーブルの作成、データの挿入とクエリ、および参加操作などの高度な機能が含まれます。一般的なエラーには、SQL構文、データ型、およびアクセス許可、および最適化の提案には、インデックスの使用、最適化されたクエリ、およびテーブルの分割が含まれます。

データベースとプログラミングにおけるMySQLの位置は非常に重要です。これは、さまざまなアプリケーションシナリオで広く使用されているオープンソースのリレーショナルデータベース管理システムです。 1)MySQLは、効率的なデータストレージ、組織、および検索機能を提供し、Web、モバイル、およびエンタープライズレベルのシステムをサポートします。 2)クライアントサーバーアーキテクチャを使用し、複数のストレージエンジンとインデックスの最適化をサポートします。 3)基本的な使用には、テーブルの作成とデータの挿入が含まれ、高度な使用法にはマルチテーブル結合と複雑なクエリが含まれます。 4)SQL構文エラーやパフォーマンスの問題などのよくある質問は、説明コマンドとスロークエリログを介してデバッグできます。 5)パフォーマンス最適化方法には、インデックスの合理的な使用、最適化されたクエリ、およびキャッシュの使用が含まれます。ベストプラクティスには、トランザクションと準備された星の使用が含まれます

MySQLは、そのパフォーマンス、信頼性、使いやすさ、コミュニティサポートに選択されています。 1.MYSQLは、複数のデータ型と高度なクエリ操作をサポートし、効率的なデータストレージおよび検索機能を提供します。 2.クライアントサーバーアーキテクチャと複数のストレージエンジンを採用して、トランザクションとクエリの最適化をサポートします。 3.使いやすく、さまざまなオペレーティングシステムとプログラミング言語をサポートしています。 4.強力なコミュニティサポートを提供し、豊富なリソースとソリューションを提供します。

Apacheはデータベースに接続するには、次の手順が必要です。データベースドライバーをインストールします。 web.xmlファイルを構成して、接続プールを作成します。 JDBCデータソースを作成し、接続設定を指定します。 JDBC APIを使用して、接続の取得、ステートメントの作成、バインディングパラメーター、クエリまたは更新の実行、結果の処理など、Javaコードのデータベースにアクセスします。

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

WebアプリケーションにおけるMySQLの主な役割は、データを保存および管理することです。 1.MYSQLは、ユーザー情報、製品カタログ、トランザクションレコード、その他のデータを効率的に処理します。 2。SQLクエリを介して、開発者はデータベースから情報を抽出して動的なコンテンツを生成できます。 3.MYSQLは、クライアントサーバーモデルに基づいて機能し、許容可能なクエリ速度を確保します。

CentOSにMySQLをインストールするには、次の手順が含まれます。適切なMySQL Yumソースの追加。 yumを実行して、mysql-serverコマンドをインストールして、mysqlサーバーをインストールします。ルートユーザーパスワードの設定など、MySQL_SECURE_INSTALLATIONコマンドを使用して、セキュリティ設定を作成します。必要に応じてMySQL構成ファイルをカスタマイズします。 MySQLパラメーターを調整し、パフォーマンスのためにデータベースを最適化します。
