Lorsque j'écris des requêtes SQL, je me retrouve souvent à penser qu '«il n'y a pas moyen de faire cela avec une seule requête». Quand cela arrive, je me tourne souvent vers des procédures stockées ou des fonctions table à plusieurs instructions qui utilisent des tables temporaires (d'une sorte ou d'une autre) et finissent par simplement combiner les résultats et retourner la table de résultats. Je me demande si quelqu'un sait, en théorie, si devrait être possible d'écrire TOUTES les requêtes qui retournent un ensemble de résultats unique en une seule requête (pas plusieurs instructions). Évidemment, j'ignore les points pertinents tels que la lisibilité du code et la maintenabilité, peut-être même la performance/l'efficacité de la requête. C'est plus sur la théorie - peut-il être fait ... et ne vous inquiétez pas, je ne prévois pas de commencer à forcer moi-même à écrire une requête à une seule instruction quand multi-déclaration répondra mieux à mon but dans tous les cas, mais Cela pourrait me faire réfléchir deux fois ou un peu plus longtemps sur la possibilité d'obtenir le résultat d'une seule requête. Je suppose que quelques paramètres sont en ordre - je pense à une base de données relationnelle (comme MS SQL) avec des tables qui suivent les meilleures pratiques courantes (telles que toutes les tables ayant une clé primaire et ainsi de suite).Question de la théorie SQL Query - requêtes simples ou multi-instructions
Note: (. À partir de documents web ou quelque chose de similaire) afin de gagner « Accepté réponse » à ce sujet, vous devrez fournir une preuve définitive
... ou un contre-exemple. –
Avant de pouvoir répondre à cette question, vous devez être beaucoup plus précis sur ce que vous entendez par "SQL en théorie". Le SQL utilisé dans la pratique varie entre les SGBD et entre les versions de SGBD. Vous devez standardiser sur un ensemble standard de constructions SQL. Par exemple, quels types de sous-requêtes autorisez-vous? En outre, vous pouvez abstraire certains détails, par exemple la «théorie de requête SQL» la plus courante, qui utilise le calcul relationnel ou l'algèbre comme abstraction de SQL, traite les tableaux comme des ensembles de lignes et non comme des listes ordonnées de lignes. – reinierpost