Maison > base de données > tutoriel mysql > Sous-requêtes EXISTS : SELECT * ou SELECT 1 – Lequel est le plus lisible ?

Sous-requêtes EXISTS : SELECT * ou SELECT 1 – Lequel est le plus lisible ?

Patricia Arquette
Libérer: 2024-12-29 16:04:12
original
960 Les gens l'ont consulté

EXISTS Subqueries: SELECT * or SELECT 1 – Which is More Readable?

Lisibilité des sous-requêtes EXISTS

Lors de l'utilisation des sous-requêtes EXISTS, il existe deux options principales :

SELECT foo FROM bar WHERE EXISTS (SELECT * FROM baz WHERE baz.id = bar.id);
SELECT foo FROM bar WHERE EXISTS (SELECT 1 FROM baz WHERE baz.id = bar.id);
Copier après la connexion

À partir d'un Du point de vue de la performance, les deux sont équivalents. Cependant, la question se pose de la lisibilité.

Manuels et utilisation courante

Selon les recherches menées sur divers manuels de SGBDR et les recherches en ligne, il semble y avoir un fossé :

  • Microsoft SQL, Oracle et MySQL privilégient SELECT * dans leur exemples.
  • PostgreSQL préfère SELECT 1.
  • SQLite ne fournit aucun exemple explicite.

Les résultats de la recherche Stack Overflow indiquent une prévalence légèrement plus élevée de SELECT * dans code.

Approche intuitive

La question pose si SELECT * est plus intuitif. Cependant, la réponse suggère que ce n’est pas le choix le plus intuitif. Au lieu de cela, SELECT 1 est recommandé car :

  • Il énonce explicitement la condition d'existence.
  • Il s'aligne sur la norme ANSI, qui spécifie que les lignes spécifiques renvoyées par la sous-requête ne sont pas pertinentes. pour EXISTS.
  • Cela démystifie le mythe selon lequel SELECT 1 est un raccourci pour l'existence vérification.

Conclusion

Bien qu'il n'y ait pas de consensus clair, SELECT 1 dans les sous-requêtes EXISTS est considéré comme plus intuitif. Il met l’accent sur l’aspect existence, s’aligne sur les normes et dissipe les idées fausses. En fin de compte, la préférence de lisibilité peut varier en fonction de la compréhension et du style du développeur.

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal