Opérateur d'Oracle ( ) : une approche héritée des jointures externes
Considérez cette instruction SQL :
<code class="language-sql">select ... from a, b where a.id = b.id(+)</code>
L'opérateur ( )
dans Oracle SQL est une manière plus ancienne et non standard d'effectuer une jointure externe. C'est un vestige du SQL pré-ANSI-92 et est généralement considéré comme moins lisible et potentiellement moins efficace que la syntaxe OUTER JOIN
moderne.
Modernisation avec les jointures externes standard ANSI-92
La requête ci-dessus peut être réécrite en utilisant la syntaxe ANSI-92 LEFT JOIN
standard et préférée :
<code class="language-sql">SELECT ... FROM a LEFT JOIN b ON b.id = a.id</code>
Cette version est plus claire, plus facile à comprendre et plus portable sur différents systèmes de bases de données.
Différences et considérations clés
L'opérateur ( )
diffère considérablement de l'approche OUTER JOIN
:
( )
ne fait pas partie de la norme ANSI SQL. L'utilisation de la syntaxe standard améliore la lisibilité et la maintenabilité du code.( )
peut nécessiter des stratégies d'indexation spécifiques pour des performances optimales. OUTER JOIN
la syntaxe, en particulier lorsqu'elle est utilisée avec des optimiseurs de requêtes modernes, conduit souvent à des plans d'exécution plus efficaces.Forte recommandation d'Oracle : adopter les OUTER JOIN standard
Oracle recommande explicitement d'utiliser la syntaxe standard OUTER JOIN
(LEFT JOIN
, RIGHT JOIN
, FULL OUTER JOIN
) au lieu de l'opérateur ( )
. C'est parce que :
OUTER JOIN
standard, ce qui conduit à de meilleures performances de requête.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!