Union PostgreSQL, Union ALL avec exemples

Qu’est-ce que PostgreSQL Union ?

L'opérateur PostgreSQL UNION est utilisé pour combiner les jeux de résultats de plusieurs instructions SELECT en un seul jeu de résultats. Toutes les lignes en double des résultats des instructions SELECT sont éliminées. L'opérateur UNION travaille sous deux conditions :

  • Les requêtes SELECT DOIVENT renvoyer un nombre similaire de requêtes.
  • Les types de données de toutes les colonnes correspondantes doivent être compatibles.

L'opérateur UNION est normalement utilisé pour combiner les données de tables associées qui n'ont pas été parfaitement normalisées.

Syntaxe

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Voici une explication des paramètres ci-dessus :

Les expression_1, expression_2,… expression_n sont les calculs ou colonnes que vous devez récupérer.

Les tables sont les tables à partir desquelles vous devez récupérer des enregistrements.

La ou les conditions WHERE sont les conditions qui doivent être remplies pour que les enregistrements soient récupérés.

Remarque : puisque l'opérateur UNION ne renvoie pas de doublons, l'utilisation de UNION DISTINCT n'aura aucun impact sur les résultats.

Union PostgreSQL

L'opérateur UNION supprime les doublons. Démontrons-le.

Nous avons une base de données nommée Demo avec le suiviwing les tables:

Livre:

Union PostgreSQL

Prix:

Union PostgreSQL

Lançons le suiviwing commander:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

La commande renverra le suiviwing:

Union PostgreSQL

La colonne id apparaît dans les tableaux Livre et Prix. Cependant, il n’apparaît qu’une seule fois dans le résultat. La raison en est que PostgreSQL L'opérateur UNION ne renvoie pas de doublons.

PostgreSQL Union Tous

Cet opérateur combine les jeux de résultats de plusieurs instructions SELECT sans supprimer les doublons. L'opérateur exige que chaque instruction SELECT ait un nombre similaire de champs dans des ensembles de résultats de types de données similaires.

syntaxe:

SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)]
UNION ALL
SELECT expression_1, expression_2, ... expression_n
FROM tables
[WHERE condition(s)];

Voici une explication des paramètres ci-dessus :

Les expression_1, expression_2,… expression_n sont les calculs ou colonnes que vous devez récupérer.

Les tables sont les tables à partir desquelles vous devez récupérer des enregistrements.

La ou les conditions WHERE sont les conditions qui doivent être remplies pour que les enregistrements soient récupérés.

Remarque : Les deux expressions doivent avoir un nombre égal d'expressions.

Nous utiliserons le suivantwing les tables:

Livre:

PostgreSQL Union Tous

Prix:

PostgreSQL Union Tous

Exécutez le suiviwing commander:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Il devrait renvoyer le suiviwing:

PostgreSQL Union Tous

Les doublons n'ont pas été supprimés.

COMMANDÉ PAR

L'opérateur PostgreSQL UNION peut être utilisé avec la clause ORDER BY pour trier les résultats de la requête. Pour le démontrer, nous utiliserons la formule suivantewing les tables:

Prix:

COMMANDÉ PAR

Prix2 :

COMMANDÉ PAR

Voici la commande qui montre comment utiliser l'opérateur UNION avec la clause ORDER BY :

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price;

La commande renverra le suiviwing:

COMMANDÉ PAR

Les enregistrements ont été classés par colonne de prix. La clause classe les enregistrements par ordre croissant par défaut. Pour les classer par ordre décroissant, ajoutez la clause DESC comme indiqué ci-dessous :

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

La commande renverra le suiviwing:

COMMANDÉ PAR

Les enregistrements ont été classés en fonction de la colonne de prix par ordre décroissant.

Quand utiliser Union et Quand utiliser Union all ?

Utilisez l'opérateur UNION lorsque vous disposez de plusieurs tables avec une structure similaire mais divisées pour une raison. C'est bien lorsque vous devez supprimer/éliminer les enregistrements en double.

Utilisez l'opérateur UNION ALL lorsque vous n'avez pas besoin de supprimer/éliminer les enregistrements en double.

Utiliser pgAdmin

Voyons maintenant comment les trois actions ont été effectuées à l'aide de pgAdmin.

Comment utiliser PostgreSQL Union avec pgAdmin

Following est un processus étape par étape sur la façon d'utiliser PostgreSQL Union à l'aide de pgAdmin

Pour accomplir la même chose via pgAdmin, procédez comme suit :

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

Étape 2) Cliquez sur Bases de données

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

Utiliser PostgreSQL Union à l'aide de pgAdmin

Étape 3) Tapez la requête
Tapez la requête dans l'éditeur de requêtes :

SELECT *
FROM Price
UNION
SELECT *
FROM Price2
ORDER BY price DESC;

Étape 4) Cliquez sur le bouton Exécuter.
Ensuite, cliquez sur le bouton Exécuter. Comme le montre l'image ci-dessous.

Utiliser PostgreSQL Union à l'aide de pgAdmin

Il devrait renvoyer le suiviwing:

Utiliser PostgreSQL Union à l'aide de pgAdmin

Union tout

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

Étape 2)

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

Utiliser PostgreSQL Union All à l'aide de pgAdmin

Étape 3) Tapez la requête dans l'éditeur de requêtes :

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Étape 4) Cliquez sur le bouton Exécuter.

Utiliser PostgreSQL Union All à l'aide de pgAdmin

Il devrait renvoyer le suiviwing:

Utiliser PostgreSQL Union All à l'aide de pgAdmin

COMMANDÉ PAR

L'opérateur UNION ALL peut être combiné avec la clause ORDER BY pour trier les résultats dans le jeu de résultats. Par exemple:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price
ORDER BY id;

La commande renverra le suiviwing:

Utiliser PostgreSQL ORDER BY en utilisant pgAdmin

Les résultats ont été ordonnés.

Résumé

  • L'opérateur PostgreSQL UNION combine les résultats de plusieurs Instruction SELECT en un seul ensemble de résultats.
  • L'opérateur UNION ne renvoie pas d'enregistrements en double.
  • Pour trier les résultats, combinez-le avec la clause ORDER BY.
  • L'opérateur UNION ALL combine les résultats de plusieurs instructions SELECT en un seul jeu de résultats.
  • L'opérateur UNION ALL ne supprime pas les doublons.

Téléchargez la base de données utilisée dans ce tutoriel