Database
 sql >> Base de données >  >> RDS >> Database

Différence entre jointure interne et jointure externe en SQL

La jointure interne et la jointure externe sont deux méthodes utiles pour joindre des tables de base de données et interroger des données à partir de plusieurs tables. Dans cet article, nous examinerons la différence entre jointure interne et jointure externe en SQL.


Joindre interne

La jointure interne renvoie les lignes de deux tables ou plus où au moins une colonne a la même valeur dans toutes les tables. S'il n'y a pas de valeurs communes, aucune ligne n'est renvoyée.

Voici la syntaxe de la jointure interne :

select *  from table1 INNER JOIN table2 
on table1.column_name = table2.column_name;

OR

select * from table1 JOIN table2 
on table1.column_name = table2.column_name;


Joindre externe

La jointure externe renvoie les lignes de deux tables ou plus où au moins une colonne a une valeur commune, ainsi que les lignes où la condition de jointure échoue. Il existe 3 types de jointures externes :


Jointure externe gauche

Dans ce cas, toutes les lignes de la table de gauche sont conservées dans le résultat, si ses conditions de jointure correspondent à d'autres tables, leurs valeurs de colonne sont renvoyées, sinon des valeurs nulles sont renvoyées pour ces colonnes. Voici la syntaxe de la jointure externe gauche.

select * from table1 
LEFT OUTER JOIN table2 
on table1.column_name = table2.column_name;


Jointure externe droite

Dans ce cas, toutes les lignes de la table de droite sont conservées dans le résultat, si ses conditions de jointure correspondent à d'autres tables, leurs valeurs de colonne sont renvoyées, sinon des valeurs nulles sont renvoyées pour ces colonnes.

Voici la syntaxe de la jointure externe droite

select * from table1 
RIGHT OUTER JOIN table2 
on table1.column_name = table2.column_name;


Jointure externe complète

Dans ce cas, toutes les lignes des deux tables sont renvoyées. Si la condition de jointure est satisfaite, les colonnes sont remplies à l'aide des valeurs des deux tables. Si la condition de jointure échoue, les valeurs de l'une des tables sont remplies dans des colonnes et les autres sont remplies de valeurs nulles.


Différence entre la jointure interne et la jointure externe en SQL

Voici les principales différences entre jointure interne et jointure externe.

Joindre interne

  • Il ne renvoie que les lignes avec des valeurs de colonne communes.
  • Vous pouvez utiliser la clause INNER JOIN ou JOIN. Les deux ont le même effet
  • Il renvoie null lorsqu'il n'y a pas de valeurs de colonne correspondantes entre deux (ou plusieurs) tables
  • La jointure interne est plus rapide que la jointure externe
  • Il est utile d'effectuer des recherches sur plusieurs tables
  • En termes mathématiques, il renvoie l'intersection de deux ensembles (tableaux)


Joindre externe

  • Il renvoie les valeurs d'une ou plusieurs tables même s'il n'y a pas de valeurs de colonne correspondantes
  • Pour les lignes sans attributs correspondants, il renvoie null pour les colonnes restantes
  • Full Outer Join et Full Join ont le même effet.
  • C'est plus lent que la jointure interne
  • Il est utilisé pour obtenir des informations complètes dans deux tables ou plus
  • La jointure externe complète n'est pas prise en charge dans MySQL. Il est disponible dans PostgreSQL, SQL Server, Oracle et d'autres bases de données populaires.


Besoin d'un outil de reporting pour MySQL ? Ubiq permet de visualiser facilement les données en quelques minutes et de les surveiller dans des tableaux de bord en temps réel. Essayez-le aujourd'hui !