ホームページ >データベース >mysql チュートリアル >MySQL INSERT: VALUES と SET – 本当の違いは何ですか?
MySQL INSERT ステートメント: VALUES と SET の違いの詳細な説明
データベース操作では、データを挿入するときに INSERT INTO table VALUES...
と INSERT INTO table SET
という 2 つの構文がよく使用されます。これら 2 つの構文の微妙な違いを理解すると、SQL スキルが向上し、データベースの対話を最適化できます。
文法構造と等価性
2 つのステートメントの構文は次のとおりです:
INSERT INTO table (column1, column2, ...) VALUES (...)
INSERT INTO table SET column1 = value1, column2 = value2, ...
VALUES
構文は SQL 標準に準拠していますが、SET
構文は MySQL 固有の拡張機能です。基本的に、両方のステートメントは、指定された値に基づいてテーブルに新しい行を挿入するという同じ目標を達成します。
パフォーマンスへの影響
一般に信じられていることに反して、これら 2 つの構文のパフォーマンスは本質的に同じです。 MySQL のドキュメントでは、この同等性が確認されており、「INSERT ... VALUES
と INSERT ... SET
ステートメント フォームは両方とも、明示的に指定された値に基づいて行を挿入」し、同様のパフォーマンス特性があると述べられています。
MySQL ドキュメントの追加手順
MySQL ドキュメントには、詳細な手順が記載されています。
SET
と VALUES
の構文形式の違いは、SET
構文では、CSV ファイルなどからデータを挿入するときに列名が指定されていない場合でもテーブルに値を挿入できることです。列名を提供しないデータ ソース これは非常に便利です。
例
それらの等価性を説明するために、次の例を考えてみましょう:
<code class="language-sql">INSERT INTO table (a, b, c) VALUES (1, 2, 3)</code>
<code class="language-sql">INSERT INTO table SET a = 1, b = 2, c = 3</code>両方のステートメントは、列 a、b、および c の値がそれぞれ 1、2、および 3 である新しいデータの行を「table」テーブルに挿入します。
結論
MySQL の と INSERT INTO table VALUES...
の微妙な違いを理解すると、開発者は好みや特定の使用例に応じてこれらの構文を区別なく使用できるようになります。両方の構造のパフォーマンス結果は同一であり、効率的かつ最適化されたデータ挿入が可能になります。 INSERT INTO table SET
以上がMySQL INSERT: VALUES と SET – 本当の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。