Fusionner deux tables en SQL

Fusionner Deux Tables En Sql



En SQL, la fusion de tables fait référence au processus de combinaison des données de deux tables distinctes d'une base de données donnée en une seule unité basée sur une colonne ou des critères communs. Oui, si cela ressemble à un tableau, c'est exactement ce que c'est.

Une jointure de table ou une fusion de table est une fonctionnalité renommée des bases de données relationnelles et elle est incroyablement puissante. Cela nous permet de consolider les informations provenant de plusieurs sources pour créer des informations plus cohérentes et significatives. Cela permet également aux bases de données relationnelles d'être hautement évolutives (et non flexibles), car nous pouvons diviser les données en morceaux plus petits et gérables que nous pourrons référencer ultérieurement.

Dans ce didacticiel, nous aborderons les principes fondamentaux des jointures de tables ou de la fusion de tables. Examinons les exemples de tableaux du monde réel pour consolider nos connaissances.







Exemple de tableau

Avant d'entrer dans le monde des jointures de tables, configurons les tables de base que nous utiliserons à des fins de démonstration.



Considérez deux tables contenant les informations sur les employés et les salaires, comme indiqué dans les exemples de requêtes suivants :



Employés de CRÉER TABLE (

employe_id INT AUTO_INCREMENT CLÉ PRIMAIRE,

prénom VARCHAR( cinquante ),

nom_VARCHAR( cinquante ),

département VARCHAR( cinquante )

);

Nous pouvons ensuite insérer les exemples de données dans la table de l’employé, comme indiqué dans les requêtes suivantes :





INSÉRER DANS les employés (prénom, nom, service) VALEURS

( 'Alice' , 'Forgeron' , 'Ressources humaines' ),

( 'Bob' , 'Johnson' , 'Commercialisation' ),

( 'Charlie' , 'Wilson' , 'Finance' ),

( 'David' , 'Brun' , 'Ventes' ),

( 'Éva' , 'Davis' , 'Ingénierie' );

Continuons et créons une nouvelle table pour stocker les informations sur les salaires comme suit :

Salaires de CREATE TABLE (

salaire_id INT AUTO_INCREMENT CLÉ PRIMAIRE,

id_employé INT,

salaire DÉCIMAL( dix , 2 ),

date_début DATE,

date_fin DATE,

CLÉ ÉTRANGÈRE (employee_id) RÉFÉRENCES employés (employee_id)

);

Ajoutez les exemples de données d'insertion dans le tableau comme suit :



INSÉRER DANS les salaires (employee_id, salaire, start_date, end_date) VALEURS
( 1 , 60000.00 , '2023-01-01' , '2023-12-31' ),
( 2 , 55000.00 , '2023-01-01' , '2023-12-31' ),
( 3 , 65000.00 , '2023-01-01' , '2023-12-31' ),
( 4 , 58000.00 , '2023-01-01' , '2023-12-31' ),
( 5 , 70000.00 , '2023-01-01' , '2023-12-31' );

Cela devrait nous fournir deux tables qui peuvent nous aider à démontrer le concept de jointure/fusion de tables en SQL.

Fusion de tables SQL/jointures de tables

Explorons les différents types de fusions de tables que nous pouvons effectuer. Nous aborderons les fondamentaux au fur et à mesure que nous progressons vers les plus avancés.

JOINTURE INTERNE

Le premier et le plus courant type de jointure de table dans SQL est une INNER JOIN. Un INNER JOIN nous permet de combiner les lignes de deux tables en fonction d'une condition spécifique. Ce type renvoie ensuite uniquement les lignes pour lesquelles il existe une correspondance entre les tables.

Prenons comme exemples les tableaux « employés » et « salaires » que nous avons créés précédemment. Pour effectuer un INNER JOIN en SQL, nous utilisons la clause INNER JOIN comme suit :

SÉLECTIONNER

e.employee_id,

e.prénom,

e.nom_de_famille,

e.département,

s.salaire

DEPUIS

employés e

Salaires d'INNER JOIN SUR

e.employee_id = s.employee_id ;

Dans l'exemple de requête donné, nous utilisons un INNER JOIN pour fusionner les tables « employés » et « salaires » sur la colonne « employé_id » qui existe dans les deux tables. L'ensemble résultant contient uniquement les lignes correspondantes des deux tables.

Un exemple de résultat est le suivant :

JOINTURE EXTERNE GAUCHE

Nous avons également un LEFT OUTER JOIN qui combine toutes les lignes de la table de gauche et les lignes correspondantes de la table de droite. S'il n'y a aucune correspondance dans la bonne table, la jointure utilise la valeur NULL.

SÉLECTIONNER

e.employee_id,

e.prénom,

e.nom_de_famille,

e.département,

s.salaire

DEPUIS

employés e

LEFT JOIN salaires s

SUR

e.employee_id = s.employee_id ;

Dans cet exemple, nous effectuons un LEFT OUTER JOIN pour fusionner les tables « employés » et « salaires ». Toutes les lignes du tableau « employés » sont incluses et les lignes correspondantes du tableau « salaires » sont ajoutées. Cependant, les valeurs NULL sont incluses dans la colonne « salaire » pour les lignes qui ne correspondent pas.

UNION SQL

Une autre méthode pour joindre les tables dans SQL consiste à utiliser l'opérateur UNION. Cet opérateur nous permet de combiner les résultats de deux ou plusieurs instructions select en un seul jeu de résultats.

Les colonnes de chaque instruction SELECT doivent avoir le même type de données pour que l'union soit applicable.

Un exemple est le suivant :

SELECT employ_id , prénom , nom , département , NULL AS salaire

DES employés e

SYNDICAT

SELECT employ_id , NULL AS prénom , NULL AS nom , NULL AS département , salaire

DE salaires s ;

Dans ce cas, une UNION fusionne les tables « employés » et « salaires ». Nous créons ensuite les colonnes NULL dans chaque instruction SELECT pour garantir que les deux tables ont un nombre similaire de colonnes.

Les UNIONS sont techniquement courantes mais elles peuvent être utiles surtout lorsque vous devez fusionner des tables avec des structures différentes.

Conclusion

Dans ce didacticiel, nous avons exploré les principes fondamentaux de la jointure/fusion de deux tables en un seul jeu de résultats. Il est bon de garder à l’esprit qu’il existe des jointures beaucoup plus avancées qui sont abordées dans cet article.