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:

PostgreSQL Rejoindre Thêta

Le prix :

PostgreSQL Rejoindre Thêta

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 :

PostgreSQL Rejoindre Thêta

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 :

PostgreSQL Rejoindre ÉQUI

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 :

PostgreSQL Jointure naturelle

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 :

Postgres gauche jointure externe

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 :

Jointure externe droite Postgres

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 :

Jointure externe complète Postgres

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

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

Jointure interne pgAdmin

É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

Jointure interne pgAdmin

Il devrait renvoyer ce qui suit :

Jointure interne pgAdmin

Rejoindre ÉQUI

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

pgAdmin EQUI Rejoindre

É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.

pgAdmin EQUI Rejoindre

Il devrait renvoyer ce qui suit :

pgAdmin EQUI Rejoindre

Jointure naturelle

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

pgAdmin Rejoindre Naturellement

É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.

pgAdmin Rejoindre Naturellement

Il devrait renvoyer ce qui suit :

pgAdmin Rejoindre Naturellement

pgAdmin Jointure interne simple

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

pgAdmin Jointure interne simple

É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.

pgAdmin Jointure interne simple

Il devrait renvoyer ce qui suit :

pgAdmin Jointure interne simple

Rejointure externe pgAdmin

Jointure externe gauche

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

pgAdmin Rejoindre externe gauche

É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.

pgAdmin Rejoindre externe gauche

Il devrait renvoyer ce qui suit :

pgAdmin Rejoindre externe gauche

Jointure externe droite

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

pgAdmin Rejoindre externe droite

É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.

pgAdmin Rejoindre externe droite

Il devrait renvoyer ce qui suit :

pgAdmin Rejoindre externe droite

Jointure externe complète

Étape 1) Connectez-vous à votre compte pgAdmin.

Étape 2)

  1. Dans la barre de navigation à gauche, cliquez sur Bases de données.
  2. Cliquez sur Démo.

pgAdmin Jointure externe complète

É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.

pgAdmin Jointure externe complète

Il devrait renvoyer ce qui suit :

pgAdmin Jointure externe complète

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