Commandes SQL JOIN : analyse des données et reporting efficace
Les commandes SQL JOIN comptent parmi les commandes SQL les plus importantes pour l’analyse et le traitement des bases de données relationnelles. Elles permettent d’interroger des données liées dans plusieurs tables et de les fusionner dans des tables de résultats. Dans ce domaine, on appelle cette opération la « jointure » ou l’« appariement ». Selon le cas d’application, des commandes JOIN telles que INNER JOIN
, OUTER JOIN
, LEFT JOIN
, RIGHT JOIN
ou FULL JOIN
sont utilisées à cet effet.
Jointures SQL : que sont les commandes SQL JOIN ?
Pour travailler avec des bases de données, que ce soit sur site ou via le Cloud, le langage de programmation et de base de données SQL est considéré comme la norme. Il permet non seulement de créer des bases de données relationnelles, mais aussi d’effectuer des requêtes de données au moyen de diverses commandes SQL. Parmi les commandes les plus importantes et les plus utilisées figure la catégorie des SQL JOINS.
Les SQL JOINS sont des commandes qui permettent d’interroger, de relier et de fusionner de manière pertinente des données dans plusieurs tables. La seule condition préalable est l’existence d’une connexion logique entre les tables. Cette connexion est établie par des clés primaires et étrangères qui permettent de fusionner des données à l’aide de commandes JOIN.
Les clés primaires et étrangères constituent des caractéristiques importantes pour les SQL JOINS. Les clés primaires identifient les lignes de manière univoque et ne peuvent pas contenir de valeurs nulles. Les clés étrangères établissent un lien entre les tables. Par exemple, dans une table concernant les employés d’une entreprise, « Identifiant employé » sert de clé primaire. Dans un tableau de véhicules, « Numéro d’immatriculation » est la clé primaire. Les deux tableaux peuvent être reliés par « Numéro d’immatriculation » comme clé étrangère dans le tableau des employés.
Quels sont les différents types de commandes SQL JOIN ?
Selon le cas d’application, il existe différentes commandes JOIN. Jetons d’abord un coup d’œil aux paramètres de base :
SELECT
: définit les colonnes qui entrent en ligne de compte pour SQL JOIN. Avec un astérisque (*), il est également possible de sélectionner l’ensemble des données.FROM
: définit la table à partir de laquelle les données sont fusionnées avec une autre table.- Commande
JOIN
: crée une table cible conformément à la commande JOIN, qui relie, fusionne ou compare les données sélectionnées. ON
: détermine la condition JOIN selon laquelle les données récupérées sont fusionnées.
La syntaxe de base contient des paramètres identiques ou similaires pour la plupart des commandes SQL JOIN et se présente comme suit :
SELECT colonneA, colonneB, ...
FROM tableA
Commande JOIN tableB
ON tableA.colonne = tableB.colonne
sqlVous recherchez une solution sûre et performante pour votre système de gestion de base de données ? Dans ce cas, le serveur d’hébergement SQL de IONOS vous propose les offres de serveur et d’hébergement adéquates avec des normes européennes de protection des données, parmi lesquelles des serveurs Cloud, des vServer (VPS), des serveurs dédiés ou un hébergement Linux avec MSSQL, MySQL ou MariaDB.
- Virtualisation complète avec accès root
- Trafic illimité et jusqu'à 1 Gbit/s de bande passante
- Stockage SSD NVMe rapide et édition Plesk Web Host
Vous trouverez ci-dessous un aperçu des jointures SQL les plus importantes.
SQL INNER JOIN
Cette commande permet de fusionner les données de deux tables dans une table de résultats si deux valeurs correspondantes sont présentes dans une colonne commune. La commande SQL INNER JOIN
est la commande JOIN la plus fréquente et la valeur par défaut si vous ne choisissez pas de type de JOIN spécifique.
Voici un exemple pratique :
INNER JOIN
est utilisé pour une table nommée « Commandes » contenant les colonnes « Numéro de commande », « Numéro client », « Produit » et « Date de commande » et une seconde table « Clients » avec les colonnes « Numéro client », « Nom » et « Adresse ». La colonne « Numéro client » sert de clé primaire dans « Clients » et de clé étrangère dans « Commandes ». INNER JOIN réunit à l’aide du numéro client toutes les commandes et données des clients dans un tableau de résultats.
La commande SQL INNER JOIN
se présente comme suit :
SELECT Commandes.Numéro de commande, Clients.Nom, Commandes.Produit, Commandes.Date de commande
FROM Commandes
INNER JOIN Clients
ON Commandes.Numéro client = Clients.Numéro client
sqlSQL OUTER JOIN
OUTER JOIN
sert de terme générique pour les commandes SQL LEFT JOIN
, RIGHT JOIN
et FULL JOIN
. La commande SQL OUTER JOIN
contrairement à la commande INNER JOIN
, fusionne non seulement les lignes correspondantes, mais aussi les lignes non correspondantes par valeur NULL. Vous trouverez ci-dessous des explications détaillées sur ces commandes SQL.
SQL LEFT JOIN
La commande LEFT JOIN
relie toutes les données d’une table de gauche avec les données correspondantes de la table de droite. Si les données ne correspondent pas, la commande renvoie une valeur NULL.
Voici un exemple pratique :
La fonction SQL LEFT JOIN
fusionne les enregistrements concordants et non concordants d’une table de gauche « Clients » avec une table de droite « Véhicules » en utilisant la colonne commune « Numéro d’immatriculation ». Contrairement à la commande INNER JOIN
, elle renvoie même les données non concordantes avec la valeur NULL.
La commande SQL LEFT JOIN
se présente comme suit :
SELECT *
FROM Clients
LEFT JOIN Véhicules
ON Clients.Numéro d’immatriculation = Véhicules.Numéro d’immatriculation
sqlSQL RIGHT JOIN
La commande RIGHT JOIN
relie les données de la table de droite avec les données correspondantes de la table de gauche. En cas de non-concordance, il y a également une valeur NULL dans les colonnes de la table de gauche.
Voici un exemple pratique :
La commande SQL RIGHT JOIN
ajoute aux données d’une table de droite « Clients » toutes les données sélectionnées d’une table de gauche « Commandes », sur la base du numéro de client. En cas de non-concordance, la commande indique la valeur NULL : par exemple, s’il n’existe ni commandes ni noms pour un numéro de client.
La commande SQL RIGHT JOIN
se présente comme suit :
SELECT Commandes.Numéro de commande, Clients.Nom, Commandes.Produit, Commandes.Date de commande
FROM Clients
RIGHT JOIN Commandes
ON Commandes.Numéro client = Clients.Numéro client
sqlSQL FULL JOIN
La commande FULL JOIN
consiste en une combinaison de LEFT JOIN
et RIGHT JOIN
et est aussi connue sous le nom de « FULL OUTER JOIN ». La commande fusionne tous les enregistrements et toutes les colonnes des deux tables. En cas de non-concordance, la commande renvoie des valeurs NULL.
Voici un exemple pratique :
La fonction FULL JOIN
fusionne toutes les données concordantes et non concordantes d’un tableau de droite « Collaborateurs » avec un tableau de gauche « Département » sur la base du numéro de département. Si aucun département ne peut être attribué, une valeur NULL est indiquée pour le service.
La commande SQL FULL JOIN se présente comme suit :
SELECT *
FROM Collaborateurs
FULL JOIN Département
ON Collaborateurs.Numéro département = Département.Numéro département
sqlSQL CROSS JOIN
CROSS JOIN
est également connu sous le nom de « JOIN cartésien ». Il relie tous les enregistrements des tables de gauche et de droite indépendamment des correspondances. Comme il renvoie toutes les combinaisons possibles, il n’y a ici pas besoin de clause ON
.
Voici un exemple pratique :
CROSS JOIN
fusionne toutes les données de la table de droite « Produits » avec la table de gauche « Commandes ».
La commande SQL CROSS JOIN
se présente comme suit :
SELECT *
FROM Produits
CROSS JOIN Commandes
sqlSQL NATURAL JOIN
La commande NATURAL JOIN
relie tous les enregistrements de deux tables par des colonnes communes. Comme la commande fusionne automatiquement les colonnes communes des tables, la clause ON n’est pas nécessaire.
Voici un exemple pratique :
La commande NATURAL JOIN
fusionne les tables « Équipe » et « Service » à l’aide de colonnes communes. La commande ne renvoie des résultats que s’il y a au moins une colonne commune.
SQL NATURAL JOIN
se présente comme suit :
SELECT *
FROM Équipe
NATURAL JOIN Service
sqlSQL SELF JOIN
La commande SQL SELF JOIN
relie une table à elle-même en la traitant comme une table gauche et droite. Vous pouvez donc en principe utiliser n’importe quelle autre commande pour une opération SELF JOIN. Dans la syntaxe, t1
et t2
servent d’alias pour une table droite et gauche, puisqu’il s’agit de la même table.
Syntaxe de base avec l’exemple LEFT JOIN
:
SELECT *
FROM tableA AS t1
LEFT JOIN tableA AS t2
ON t1.nom de la colonne = t2.nom de la colonne
sql