JOINTURE SQL
Une jointure SQL est utilisée pour récupérer ou combiner des données (lignes ou colonnes) de deux ou plusieurs tables en fonction des conditions définies.
Tableau 1 : Commande
Numéro de commande | N ° de client | Nom de la commande | Nom du produit |
---|---|---|---|
12025 | 101 | Pierre | abc |
12030 | 105 | Robert | XIX |
12032 | 110 | James | XYZ |
12034 | 115 | André | PQR |
12035 | 120 | Mathieu | AAA |
Tableau 2 : Client
N ° de client | Nom du client | Pays |
---|---|---|
100 | Désordonné | Maxico |
101 | Prince | Taïwan |
103 | Maria Fernández | Turquie |
105 | Jasmin | Paris |
110 | Faf belette | Indonésie |
120 | Fusée de Rome | Russie |
Maintenant, nous avons deux tables Commande et le Client . Il y a un N ° de client colonne commune aux deux tableaux. Alors, écrivez la requête SQL pour définir la relation générale afin de sélectionner les enregistrements des correspondances dans les deux tables.
Select Order.OrderID, Customer.CustomerName, Customer.Country, Order.ProductName from Order INNER JOIN Customer ON Order.CustomerID = Customer.CustomerID;
Après avoir exécuté ce qui précède SQL requêtes, il produit le résultat suivant :
Numéro de commande | Nom du client | Pays | Nom du produit |
---|---|---|---|
12025 | Prince | Taïwan | abc |
12030 | Jasmin | Paris | XIX |
12032 | Faf belette | Indonésie | XYZ |
12035 | Fusée romaine | Russie | AAA |
Types de jointure SQL
Il existe différents types de jointures utilisées en SQL :
- Jointure interne / Jointure simple
- Jointure externe gauche / Jointure gauche
- Jointure externe droite / Jointure droite
- Jointure externe complète
- Jointure croisée
- Auto-adhésion
Jointure interne
La jointure interne est utilisée pour sélectionner toutes les lignes ou colonnes correspondantes dans les deux tables ou tant que la condition définie est valide dans SQL.
Syntaxe:
Select column_1, column_2, column_3 FROM table_1 INNER JOIN table_2 ON table_1.column = table_2.column;
Nous pouvons représenter la jointure interne à travers le diagramme de Venn, comme suit :
Tableau 1 : Étudiants
Carte d'étudiant | Nom d'étudiant | Sujet | ID enseignant |
---|---|---|---|
101 | Alexandra | L'informatique | T201 |
102 | Charles | Économie | T202 |
103 | Tom Croisière | L'informatique | T201 |
104 | Aaron Finch | Électronique | T203 |
105 | Graine Bajoff | Conception web | T204 |
106 | Christophe | Littérature anglaise | T205 |
107 | Jean | Styliste modéliste | T206 |
Tableau 2 : Enseignants
ID enseignant | Nom de l'enseignant | EnseignantEmail |
---|---|---|
T201 | M. Davis | [email protégé] |
T202 | Mme Jonas | [email protégé] |
T201 | M. Davis | [email protégé] |
T204 | Mme Lopez | [email protégé] |
T205 | Mme Wiley | [email protégé] |
T206 | Mister Bean | [email protégé] |
Nous avons deux tableaux : Étudiants et le Enseignants Les tables. Écrivons les requêtes SQL pour rejoindre la table en utilisant le JOINTURE INTERNE comme suit:
Select Student_ID, StudentName, TeacherName, TeacherEmail FROM Students INNER JOIN Teachers ON Students.TeacherID = Teachers.TeacherID;
Après avoir exécuté la requête, elle produit le tableau ci-dessous.
Jointure naturelle
Il s'agit d'un type de type interne qui joint deux ou plusieurs tables sur la base du même nom de colonne et qui a le même type de données présent sur les deux tables.
Syntaxe:
Select * from tablename1 Natural JOIN tablename_2;
Nous avons deux tableaux : Étudiants et le Enseignants Les tables. Écrivons les requêtes SQL pour rejoindre la table en utilisant le REJOINDRE comme suit:
Select * from Students Natural JOIN Teachers;
Après avoir exécuté la requête ci-dessus, elle produit le tableau suivant.
JOINT GAUCHE
Le JOINT GAUCHE est utilisé pour récupérer tous les enregistrements de la table de gauche (table1) et les lignes ou colonnes correspondantes de la table de droite (table2). Si les deux tables ne contiennent aucune ligne ou colonne correspondante, la valeur NULL est renvoyée.
Syntaxe:
Select column_1, column_2, column(s) FROM table_1 LEFT JOIN table_2 ON table_1.column_name = table_2.column_name;
Nous pouvons également représenter la jointure gauche via le diagramme de Venn, comme suit :
Remarque : Dans certaines bases de données, LEFT JOIN est également connu sous le nom de LEFT OUTER JOIN.
Tableau 1 : Détails du produit
ID produit | Nom du produit | Montant |
---|---|---|
Pro101 | Ordinateur portable | 56000 |
Pro102 | Mobile | 38000 |
Pro103 | Écouteurs | 5000 |
Pro104 | Télévision | 25000 |
Pro105 | iPad | 60000 |
Tableau 2 : Détails_client
protocoles de couche liaison de données
Nom du client | Adresse du client | Âge du client | ID produit |
---|---|---|---|
Martin Guptil | San Francisco, États-Unis | 26 | Pro101 |
James | Australie | 29 | Pro103 |
Ambati Williamson | Nouvelle-Zélande | 27 | Pro102 |
Jofra Archer | Afrique du Sud | 24 | Pro105 |
Kate Wiley | Australie | vingt | Pro103 |
Nous avons deux tableaux : Détails du produit et le Détails du client Les tables. Écrivons les requêtes SQL pour rejoindre la table en utilisant le JOINT GAUCHE comme suit:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Après avoir exécuté la requête, elle produit le tableau suivant.
RIGHT JOIN ou RIGHT Outer JOIN :
Le REJOINDRE À DROITE est utilisé pour récupérer tous les enregistrements de la table de droite (table2) et les lignes ou colonnes correspondantes de la table de gauche (table1). Si les deux tables ne contiennent aucune ligne ou colonne correspondante, la valeur NULL est renvoyée.
Syntaxe:
Select column_1, column_2, column(s) FROM table_1 RIGHT JOIN table_2 ON table_1.column_name = table_2.column_name;
Nous pouvons également représenter la jointure droite via le diagramme de Venn, comme suit :
Remarque : Dans certaines bases de données, le RIGHT JOIN est également appelé RIGHT OUTER JOIN.
Tableau 1 : Détails du produit
IDENTIFIANT | Nom du produit | Montant |
---|---|---|
Pro101 | Ordinateur portable | 56000 |
Pro102 | Mobile | 38000 |
Pro103 | Écouteurs | 5000 |
Pro104 | Télévision | 25000 |
Pro105 | iPad | 60000 |
Tableau 2 : Détails_client
Nom du client | Adresse du client | Âge du client | ID produit |
---|---|---|---|
Martin Guptil | San Francisco, États-Unis | 26 | Pro101 |
James | Australie | 29 | Pro103 |
Ambati Williamson | Nouvelle-Zélande | 27 | Pro102 |
Jofra Archer | Afrique du Sud | 24 | Pro105 |
Présage | Angleterre | 29 | Pro107 |
Morgan | Angleterre | vingt | Pro108 |
Nous avons deux tableaux : Détails du produit et le Détails du client Les tables. Écrivons les requêtes SQL pour rejoindre la table en utilisant le REJOINDRE À DROITE comme suit:
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Après avoir exécuté la requête, elle produit le tableau ci-dessous.
FULL JOIN ou FULL Outer JOIN :
Il s'agit d'un ensemble de résultats combinés des deux JOINT GAUCHE et REJOINDRE À DROITE . Les tables jointes renvoient tous les enregistrements des deux tables et si aucune correspondance n'est trouvée dans la table, elle place NULL. On l'appelle aussi un JOINTURE EXTERNE COMPLÈTE .
Syntaxe:
Select column_1, column_2, column(s) FROM table_1 FULL JOIN table_2 ON table_1.column_name = table_2.column_name;
Ou, JOINTURE EXTERNE COMPLÈTE
Select column_1, column_2, column(s) FROM table_1 FULL OUTER JOIN table_2 ON table_1.column_name = table_2.column_name;
Nous pouvons également représenter la jointure externe complète via le diagramme de Venn, comme suit :
Tableau 1 : Détails du produit
IDENTIFIANT | Nom du produit | Montant |
---|---|---|
Pro101 | Ordinateur portable | 56000 |
Pro102 | Mobile | 38000 |
Pro103 | Écouteurs | 5000 |
Pro104 | Télévision | 25000 |
Pro105 | iPad | 60000 |
Tableau 2 : Détails_client
Nom du client | Adresse du client | Âge du client | ID produit |
---|---|---|---|
Martin Guptil | San Francisco, États-Unis | 26 | Pro101 |
James | Australie | 29 | Pro103 |
Ambati Williamson | Nouvelle-Zélande | 27 | Pro102 |
Jofra Archer | Afrique du Sud | 24 | Pro105 |
Présage | Angleterre | 29 | Pro107 |
Morgan | Angleterre | vingt | Pro108 |
Nous avons deux tableaux : Détails du produit et le Détails du client Les tables. Écrivons les requêtes SQL pour rejoindre la table en utilisant le COMPLET REJOIGNEZ comme suit :
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details FULL JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID;
Après avoir exécuté la requête, elle produit le tableau ci-dessous.
Remarque : MySQL ne prend pas en charge les concepts FULL JOIN, nous pouvons donc utiliser la clause UNION ALL pour combiner les deux tables.
Voici la syntaxe de UNION TOUS Clause pour combiner les tables.
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details LEFT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID UNION ALL Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details RIGHT JOIN Customer_Details ON Product_Details.ID = Customer_Details.ProductID
JOINTION CROISÉE
Il est également connu sous le nom JOINT CARTÉSIEN , qui renvoie le produit cartésien de deux ou plusieurs tables jointes. Le JOINTION CROISÉE produit un tableau qui fusionne chaque ligne du premier tableau avec chaque deuxième ligne du tableau. Il n’est pas nécessaire d’inclure une condition dans CROSS JOIN.
Syntaxe:
Select * from table_1 cross join table_2;
Ou,
Select column1, column2, column3 FROM table_1, table_2;
Tableau 1 : Détails du produit
IDENTIFIANT | Nom du produit | Montant |
---|---|---|
Pro101 | Ordinateur portable | 56000 |
Pro102 | Mobile | 38000 |
Pro103 | Écouteurs | 5000 |
Pro104 | Télévision | 25000 |
Pro105 | iPad | 60000 |
Tableau 2 : Détails_client
Nom du client | Adresse du client | Âge du client | ID produit |
---|---|---|---|
Martin Guptil | San Francisco, États-Unis | 26 | Pro101 |
James | Australie | 29 | Pro103 |
Ambati Williamson | Nouvelle-Zélande | 27 | Pro102 |
Jofra Archer | Afrique du Sud | 24 | Pro105 |
Présage | Angleterre | 29 | Pro107 |
Morgan | Angleterre | vingt | Pro108 |
Nous avons deux tableaux : Détails du produit et le Détails du client Les tables. Écrivons les requêtes SQL pour rejoindre la table en utilisant le COMPLET REJOIGNEZ comme suit :
Select ID, ProductName, CustomerName, CustomerAddress, Amount FROM Product_Details, Customer_Details;
Après avoir exécuté la requête, elle produit le tableau ci-dessous.
python rstrip
AUTO-INSCRIPTION
Il s'agit d'un SELF JOIN utilisé pour créer une table en se joignant elle-même car il y avait deux tables. Il permet de nommer temporairement au moins une table dans une instruction SQL.
Syntaxe:
Select column1, column2, column(s) FROM table_1 Tbl1, table_2 Tbl2 WHERE condition;
Tableau 1 et Tbl2 sont deux alias de table différents pour la même table.
Tableau 1 : Détails du produit
IDENTIFIANT | Nom du produit | Montant |
---|---|---|
Pro101 | Ordinateur portable | 56000 |
Pro102 | Mobile | 38000 |
Pro103 | Écouteurs | 5000 |
Pro104 | Télévision | 25000 |
Pro105 | iPad | 60000 |
Écrivons les requêtes SQL pour rejoindre la table en utilisant le AUTO-INSCRIPTION comme suit:
Select TB.ID, TB.ProductName FROM Product_Details TB, Product_Details TB2 WHERE TB.AMOUNT <tb2.amount; < pre> <p>After executing the query, it produces the below table. </p> <img src="//techcodeview.com/img/sql-tutorial/44/types-sql-join-12.webp" alt="Types of SQL JOIN"> <hr></tb2.amount;>