単一テーブルの構文:
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 ...
目前,您不能从一个表中删除,同时又在子查询中从同一个表中选择。

MySQLとSQLiteの主な違いは、設計コンセプトと使用法のシナリオです。1。MySQLは、大規模なアプリケーションとエンタープライズレベルのソリューションに適しており、高性能と高い並行性をサポートしています。 2。SQLiteは、モバイルアプリケーションとデスクトップソフトウェアに適しており、軽量で埋め込みやすいです。

MySQLのインデックスは、データの取得をスピードアップするために使用されるデータベーステーブル内の1つ以上の列の順序付けられた構造です。 1)インデックスは、スキャンされたデータの量を減らすことにより、クエリ速度を改善します。 2)B-Tree Indexは、バランスの取れたツリー構造を使用します。これは、範囲クエリとソートに適しています。 3)CreateIndexステートメントを使用して、createIndexidx_customer_idonorders(customer_id)などのインデックスを作成します。 4)Composite Indexesは、createIndexIDX_CUSTOMER_ORDERONORDERS(Customer_Id、Order_date)などのマルチコラムクエリを最適化できます。 5)説明を使用してクエリ計画を分析し、回避します

MySQLでトランザクションを使用すると、データの一貫性が保証されます。 1)StartTransactionを介してトランザクションを開始し、SQL操作を実行して、コミットまたはロールバックで送信します。 2)SavePointを使用してSave Pointを設定して、部分的なロールバックを許可します。 3)パフォーマンスの最適化の提案には、トランザクション時間の短縮、大規模なクエリの回避、分離レベルの使用が合理的に含まれます。

MySQLの代わりにPostgreSQLが選択されるシナリオには、1)複雑なクエリと高度なSQL関数、2)厳格なデータの整合性と酸コンプライアンス、3)高度な空間関数が必要、4)大規模なデータセットを処理するときに高いパフォーマンスが必要です。 PostgreSQLは、これらの側面でうまく機能し、複雑なデータ処理と高いデータの整合性を必要とするプロジェクトに適しています。

MySQLデータベースのセキュリティは、以下の測定を通じて達成できます。1。ユーザー許可管理:CreateUSERおよびGrantコマンドを通じてアクセス権を厳密に制御します。 2。暗号化された送信:SSL/TLSを構成して、データ送信セキュリティを確保します。 3.データベースのバックアップとリカバリ:MySQLDUMPまたはMySQLPumpを使用して、定期的にデータをバックアップします。 4.高度なセキュリティポリシー:ファイアウォールを使用してアクセスを制限し、監査ロギング操作を有効にします。 5。パフォーマンスの最適化とベストプラクティス:インデックス作成とクエリの最適化と定期的なメンテナンスを通じて、安全性とパフォーマンスの両方を考慮に入れます。

MySQLのパフォーマンスを効果的に監視する方法は? MySqladmin、ShowGlobalStatus、PerconAmonitoring and Management(PMM)、MySQL EnterpriseMonitorなどのツールを使用します。 1. mysqladminを使用して、接続の数を表示します。 2。showglobalstatusを使用して、クエリ番号を表示します。 3.PMMは、詳細なパフォーマンスデータとグラフィカルインターフェイスを提供します。 4.mysqlenterprisemonitorは、豊富な監視機能とアラームメカニズムを提供します。

MySQLとSQLServerの違いは次のとおりです。1)MySQLはオープンソースであり、Webおよび埋め込みシステムに適しています。2)SQLServerはMicrosoftの商用製品であり、エンタープライズレベルのアプリケーションに適しています。ストレージエンジン、パフォーマンスの最適化、アプリケーションシナリオの2つには大きな違いがあります。選択するときは、プロジェクトのサイズと将来のスケーラビリティを考慮する必要があります。

高可用性、高度なセキュリティ、優れた統合を必要とするエンタープライズレベルのアプリケーションシナリオでは、MySQLの代わりにSQLServerを選択する必要があります。 1)SQLServerは、高可用性や高度なセキュリティなどのエンタープライズレベルの機能を提供します。 2)VisualStudioやPowerbiなどのMicrosoftエコシステムと密接に統合されています。 3)SQLSERVERは、パフォーマンスの最適化に優れた機能を果たし、メモリが最適化されたテーブルと列ストレージインデックスをサポートします。


ホットAIツール

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

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

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

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

人気の記事

ホットツール

VSCode Windows 64 ビットのダウンロード
Microsoft によって発売された無料で強力な IDE エディター

AtomエディタMac版ダウンロード
最も人気のあるオープンソースエディター

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

Dreamweaver Mac版
ビジュアル Web 開発ツール

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

ホットトピック









