Maison >base de données >tutoriel mysql >INSERT MySQL : VALUES vs SET – Quelle est la vraie différence ?
Instruction MySQL INSERT : Explication détaillée des différences entre VALUES et SET
Dans les opérations de base de données, deux syntaxes sont souvent utilisées lors de l'insertion de données : INSERT INTO table VALUES...
et INSERT INTO table SET
. Comprendre les différences subtiles entre ces deux syntaxes peut améliorer vos compétences SQL et optimiser les interactions avec les bases de données.
Structure grammaticale et équivalence
La syntaxe des deux instructions est la suivante :
INSERT INTO table (column1, column2, ...) VALUES (...)
INSERT INTO table SET column1 = value1, column2 = value2, ...
VALUES
est conforme au standard SQL, tandis que la syntaxe SET
est une extension spécifique à MySQL. Essentiellement, les deux instructions accomplissent le même objectif : insérer une nouvelle ligne dans le tableau en fonction d'une valeur spécifiée.
Impact sur les performances
Contrairement à la croyance populaire, les performances de ces deux syntaxes sont essentiellement les mêmes. La documentation MySQL confirme cette équivalence, déclarant que « les formulaires d'instruction INSERT ... VALUES
et INSERT ... SET
insèrent des lignes basées sur des valeurs explicitement spécifiées » et ont des caractéristiques de performances similaires.
Instructions supplémentaires dans la documentation MySQL
La documentation MySQL fournit des instructions supplémentaires :
La différence entre les formes de syntaxe SET
et VALUES
est que la syntaxe SET
vous permet d'insérer des valeurs dans le tableau même si aucun nom de colonne n'est spécifié lors de l'insertion de données à partir d'un fichier CSV ou autre. source de données qui ne fournit pas de noms de colonnes. C'est très utile »
Exemple
Pour illustrer leur équivalence, considérons l'exemple suivant :
<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>
Les deux instructions inséreront une ligne de nouvelles données dans le tableau "table", les valeurs des colonnes a, b et c étant respectivement 1, 2 et 3.
Conclusion
Comprendre les différences subtiles entre INSERT INTO table VALUES...
et INSERT INTO table SET
dans MySQL permet aux développeurs d'utiliser ces syntaxes de manière interchangeable en fonction de leurs préférences ou de leur cas d'utilisation spécifique. Les résultats de performances pour les deux structures sont identiques, permettant une insertion de données efficace et optimisée.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!