Lorsque nous étudions le modèle relationnel de notre base de données exemple nous avons vu que le modèle physique des données, répercute les clefs des tables maîtres en tant que clefs étrangères des tables pour lesquelles une jointure est nécessaire. En utilisant la jointure entre clefs primaires et clefs secondaires basée sur l'égalité des valeurs des colonnes nous exécutons ce que les professionnels du SQL appelle une jointure naturelle.
Il est aussi possible de faire des équi-jointures qui ne sont pas naturelles, soit par accident (une erreur !), soit par nécessité.
Il est aussi possible de faire des non équi-jointures, c'est-à-dire des jointures basée sur un critère différent de l'égalité, mais aussi des auto-jointures, c'est-à-dire de joindre la table sur elle-même. Le cas le plus délicat à comprendre est celui des jointures externes, c'est-à-dire exiger que le résultat comprenne toutes les lignes des tables (ou d'au moins une des tables de la jointure), même s'il n'y a pas correspondance des lignes entre les différentes tables mise en oeuvre dans la jointure.
La jointure d'union consiste à ajouter toutes les données des deux tables à condition qu'elles soient compatibles dans leurs structures.
La jointure croisée permet de faire le produit cartésien des tables.
Enfin on peut effectuer des requêtes hétérogènes, c'est-à-dire de joindre une table d'une base de données, à une ou plusieurs autres base de données éventuellement même sur des serveurs différents, voire même sur des serveurs de différents types (par exemple joindre une table T_CLIENT de la base BD_COMMANDE d'un serveur Oracle à la table T_PROSPECT de la base BD_COMMERCIAL d'un serveur Sybase !).
Il est aussi possible de faire des équi-jointures qui ne sont pas naturelles, soit par accident (une erreur !), soit par nécessité.
Il est aussi possible de faire des non équi-jointures, c'est-à-dire des jointures basée sur un critère différent de l'égalité, mais aussi des auto-jointures, c'est-à-dire de joindre la table sur elle-même. Le cas le plus délicat à comprendre est celui des jointures externes, c'est-à-dire exiger que le résultat comprenne toutes les lignes des tables (ou d'au moins une des tables de la jointure), même s'il n'y a pas correspondance des lignes entre les différentes tables mise en oeuvre dans la jointure.
La jointure d'union consiste à ajouter toutes les données des deux tables à condition qu'elles soient compatibles dans leurs structures.
La jointure croisée permet de faire le produit cartésien des tables.
Enfin on peut effectuer des requêtes hétérogènes, c'est-à-dire de joindre une table d'une base de données, à une ou plusieurs autres base de données éventuellement même sur des serveurs différents, voire même sur des serveurs de différents types (par exemple joindre une table T_CLIENT de la base BD_COMMANDE d'un serveur Oracle à la table T_PROSPECT de la base BD_COMMERCIAL d'un serveur Sybase !).
source : http://sqlpro.developpez.com/cours/sqlaz/jointures/
ليست هناك تعليقات:
إرسال تعليق