Principale différence: les jointures en SQL permettent de combiner les données de deux tables différentes. Une jointure interne est une condition qui aboutit aux lignes qui satisfont à la clause 'where' dans «toutes les tables»; alors qu'une jointure externe est une condition qui aboutit aux lignes qui satisfont à la clause 'where' dans «au moins une des tables».
Lors de l'implémentation des jointures, les tables temporaires sont créées. Elles sont basées sur des colonnes. Il devrait toujours y avoir deux tables, pour les conditions de jointure. Ces conditions fusionnent ensuite les composants respectifs d’une table avec les autres composants et donnent lieu à une table entièrement nouvelle. L'objectif de ces tables est d'extraire les données ou informations significatives et nécessaires. Selon les conditions, il existe deux types de jointures, les jointures interne et externe.
Syntaxe SQL INNER JOIN:
SELECT nom_colonne
DE table1
INNER JOIN table2
ON table1.column_name = table2.column_name;
Le mot clé INNER JOIN sélectionne toutes les lignes des deux tables tant qu'il existe une correspondance entre les colonnes des deux tables.
Les jointures internes dépendent de la sélection des conceptions et des caractéristiques de la base de données. En conséquence, ces jointures internes sont utilisées dans les Equi-Joins et Natural Joins. Dans Equi Join, il existe un type spécifique de comparaison utilisé pour égaliser les deux tables données. Par conséquent, cette table utilise le prédicat égal. La jointure naturelle est un type de jointure Equi.
La syntaxe pour Equi Join est la suivante:
S ÉLECT *
DE table1, table 2
WHERE table1.coloumn_name = table2.coloumn_name;
Si les colonnes d'une équi-jointure ont le même nom, la version SQL respective fournit une notation abrégée facultative qui peut être exprimée par la construction USING sous la forme:
SELECT *
FROM table1 INNER JOIN table2 USING (nom_colonne);
La syntaxe de Natural Join est la suivante:
SELECT *
FROM table1 NATURAL JOIN table2;
Une «jointure externe» n'a pas besoin des conditions de correspondance pour les enregistrements. Cette condition de jointure conserve tous les autres enregistrements, à l'exception des enregistrements non appariés. Cette jointure est ensuite répartie dans les conditions de jointure externe gauche, droite et complète, qui sont mises en œuvre en fonction des conditions et des attributs de table souhaités.
Jointure externe gauche
Le mot clé LEFT JOIN renvoie toutes les lignes de la table de gauche (table1), avec les lignes correspondantes dans la table de droite (table2). Il en résulte «NULL» dans le côté droit lorsqu'il n'y a pas de correspondance.
La syntaxe de Left Outer Join est la suivante:
SELECT nom_colonne
DE table1
JOINT EXTERIEUR GAUCHE table2
ON table1.column_name = table2.column_name;
Jointure extérieure droite
Le mot clé RIGHT JOIN renvoie toutes les lignes de la table de droite (table2), avec les lignes correspondantes dans la table de gauche (table1). Le résultat est NULL dans le côté gauche lorsqu'il n'y a pas de correspondance.
La syntaxe de Right Outer Join est la suivante:
SELECT nom_colonne
DE table1
RIGHT OUTER JOIN table2
ON table1.column_name = table2.column_name;
Jointure complète
Le mot clé FULL OUTER JOIN renvoie toutes les lignes de la table de gauche (table1) et de la table de droite (table2). Le mot clé FULL OUTER JOIN combine le résultat des jointures LEFT et RIGHT.
La syntaxe de Full Outer Join est la suivante:
SELECT nom_colonne
DE table1
FULL OUTER JOIN table2
ON table1.column_name = table2.column_name;
Comparaison entre jointure interne et jointure externe:
Jointure interne | Jointure externe | |
Fonction basique | Les jointures internes sont essentiellement utilisées pour rechercher des lignes correspondantes entre 2 tables. | La jointure externe conserve les lignes de l'une des tables ou des deux. |
Existence de variables communes | Ici, la variable commune doit obligatoirement figurer dans les deux tableaux. | Ici, la variable dépend uniquement de la première table qui peut ou non être présente dans la seconde table. |
Résultats | La jointure interne ne renverra que les lignes contenant une correspondance basée sur le prédicat de la jointure. | La jointure externe renverra toutes les lignes, qu'elles soient basées sur une correspondance ou non, sur la base du prédicat de la jointure. |
Habitué | Il est utilisé pour afficher les enregistrements uniquement lorsque les enregistrements sont présents sur les deux tables. | Il est utilisé pour afficher tous les enregistrements dans une seule table. |
Applicable dans | Ils sont applicables dans: Equi-Join et Jointure naturelle | Ils sont applicables en tant que: Jointure externe gauche Jointure extérieure droite Jointure complète |