PostgreSQL Joignez les types avec des exemples : intérieur, extérieur, gauche, droite
Que sont les jointures PostgreSQL?
PostgreSQL Joint sont utilisés pour récupérer des données de plusieurs tables. Avec les jointures, il nous est possible de combiner les instructions SELECT et JOIN en une seule instruction. Une condition JOIN est ajoutée à l'instruction et toutes les lignes qui remplissent les conditions sont renvoyées. Les valeurs des différentes tables sont combinées sur la base de colonnes communes. La colonne commune est principalement une clé primaire de la première table et une clé étrangère de la deuxième table.
PostgreSQL Types de jointure
Il existe deux types de jointures dans PostgreSQL:
- Jointures intérieures
- Jointures externes
PostgreSQL Jointure interne
Il existe 3 types de jointures internes dans PostgreSQL:
- Rejoindre Theta
- Jointure naturelle
- Rejoindre EQUI
Rejoindre Thêta
Une jointure thêta permet de joindre deux tables en fonction de la condition représentée par thêta. Les jointures thêta peuvent fonctionner avec tous les opérateurs de comparaison. Dans la plupart des cas, la jointure thêta est appelée jointure interne.
La jointure thêta est le type de JOIN le plus basique. Il renverra toutes les lignes des tables où la condition JOIN est satisfaite.
syntaxe:
SELECT columns FROM table-1 INNER JOIN table-2 ON table-1.column = table-2.column;
Considérez les tables suivantes de la base de données Demo :
Livre:
Le prix :
Nous voulons voir le nom de chaque livre et le prix correspondant. Nous pouvons exécuter la commande suivante :
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Cela renverra ce qui suit :
Seules 3 lignes satisfaisaient à la condition de jointure.
Rejoindre ÉQUI
La jointure EQUI nous offre un moyen de joindre deux tables basées sur la relation clé primaire/clé étrangère. Par exemple:
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Cela renverra ce qui suit :
Les enregistrements ont été renvoyés par les deux tables en fonction des colonnes communes, c'est-à-dire la colonne id.
Jointure naturelle
Ce type de jointure nous offre une autre façon d’écrire une jointure EQUI. Nous pouvons améliorer notre exemple précédent en ajoutant le mot-clé NATURAL comme indiqué ci-dessous :
SELECT * FROM Book NATURAL JOIN Price;
Cela renverra ce qui suit :
Une seule colonne id a été renvoyée. Le NATURAL JOIN a pu constater que la colonne id est commune dans les deux tables. Un seul a été restitué.
Jointure externe Postgres
Il existe 3 types de jointures externes dans PostgreSQL:
- Jointure externe gauche
- Jointure externe droite
- Jointure externe complète
Postgres gauche jointure externe
Le LEFT OUTER JOIN renverra toutes les lignes du tableau de gauche et uniquement les lignes du tableau de droite où la condition de jointure a été satisfaite.
syntaxe:
SELECT columns FROM table-1 LEFT OUTER JOIN table-2 ON table-1.column = table-2.column;
Il faut voir le nom de chaque livre et le prix correspondant. Nous pouvons exécuter la commande suivante :
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Cela renvoie les éléments suivants :
Les 4 lignes de la table Book ont été renvoyées. Seules 3 lignes de la table Price remplissaient la condition de jointure. C'est pourquoi ils ont été restitués. Le dernier livre n'a pas de valeur de prix correspondante.
Jointure externe droite Postgres
Le RIGHT OUTER JOIN renvoie toutes les lignes du tableau de droite et les lignes du tableau de gauche où la condition de jointure a été satisfaite.
syntaxe:
SELECT columns FROM table-1 RIGHT OUTER JOIN table-2 ON table-1.column = table-2.column;
Par exemple :
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Cela renvoie les éléments suivants :
Toutes les lignes de la table Price ont été renvoyées. Seules les lignes de la table Book qui remplissaient la condition de jointure ont été renvoyées. Le 3rd La ligne n'a aucune valeur pour le nom puisqu'aucune correspondance n'a été trouvée.
Participation extérieure complète PostgreSQL
Ce type de JOIN renverra toutes les lignes du tableau de gauche et toutes les lignes du tableau de droite avec des valeurs nulles lorsque la condition de jointure n'est pas satisfaite.
syntaxe:
SELECT columns FROM table-1 FULL OUTER JOIN table-2 ON table-1.column = table-2.column;
Par exemple :
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Cela renvoie les éléments suivants :
Toutes les lignes de toutes les tables ont été renvoyées, avec des valeurs nulles là où aucune correspondance n'a été trouvée.
Utiliser pgAdmin
Les tâches ci-dessus peuvent être accomplies dans pgAdmin comme suit :
Jointure interne pgAdmin
Comment utiliser Theta Join PostgreSQL en utilisant pgAdmin
Vous trouverez ci-dessous les étapes pour utiliser Theta Join dans Postgres à l'aide de pgAdmin :
Étape 1) Connectez-vous à votre compte pgAdmin
Ouvrez pgAdmin et connectez-vous en utilisant vos informations d'identification
Étape 2) Créer une base de données de démonstration
- Dans la barre de navigation à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête
Tapez la requête ci-dessous dans l'éditeur de requête :
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Étape 4) Exécutez la requête
Cliquez sur le bouton Exécuter
Il devrait renvoyer ce qui suit :
Rejoindre ÉQUI
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requêtes :
SELECT * FROM Book JOIN Price ON Book.id = Price.id;
Étape 4) Cliquez sur le bouton Exécuter.
Il devrait renvoyer ce qui suit :
Jointure naturelle
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requêtes :
SELECT * FROM Book NATURAL JOIN Price;
Étape 4) Cliquez sur le bouton Exécuter.
Il devrait renvoyer ce qui suit :
pgAdmin Jointure interne simple
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requêtes :
SELECT Book.name, Price.price FROM Book INNER JOIN Price ON Book.id = Price.id;
Étape 4) Cliquez sur le bouton Exécuter.
Il devrait renvoyer ce qui suit :
Rejointure externe pgAdmin
Jointure externe gauche
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requêtes :
SELECT Book.name, Price.price FROM Book LEFT JOIN Price ON Book.id = Price.id;
Étape 4) Cliquez sur le bouton Exécuter.
Il devrait renvoyer ce qui suit :
Jointure externe droite
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requêtes :
SELECT Book.name, Price.price FROM Book RIGHT JOIN Price ON Book.id = Price.id;
Étape 4) Cliquez sur le bouton Exécuter.
Il devrait renvoyer ce qui suit :
Jointure externe complète
Étape 1) Connectez-vous à votre compte pgAdmin.
Étape 2)
- Dans la barre de navigation à gauche, cliquez sur Bases de données.
- Cliquez sur Démo.
Étape 3) Tapez la requête dans l'éditeur de requêtes :
SELECT Book.name, Price.price FROM Book FULL OUTER JOIN Price ON Book.id = Price.id;
Étape 4) Cliquez sur le bouton Exécuter.
Il devrait renvoyer ce qui suit :
Résumé
- In PostgreSQL, nous utilisons les JOIN lorsque nous devons récupérer les valeurs de plusieurs tables.
- L'INNER JOIN est le type de JOIN le plus basique. Il renvoie tous les enregistrements pour lesquels la condition JOIN spécifiée était remplie.
- Le LEFT OUTER JOIN renvoie toutes les lignes de la table de gauche et uniquement les lignes de l'autre table où la condition de jointure a été satisfaite.
- Le RIGHT OUTER JOIN renvoie toutes les lignes de la table de droite et uniquement les lignes de l'autre table où la condition de jointure a été satisfaite.
- Ce type de JOIN renvoie toutes les lignes du tableau de gauche et toutes les lignes du tableau de droite avec des valeurs nulles lorsque la condition de jointure n'est pas satisfaite.
Téléchargez la base de données utilisée dans ce tutoriel