PostgreSQL Unione, Unione TUTTO con esempi

Che cos'è la PostgreSQL Unione?

PostgreSQL L'operatore UNION viene utilizzato per combinare set di risultati da più di un'istruzione SELECT in un set di risultati. Tutte le righe duplicate dai risultati delle istruzioni SELECT vengono eliminate. L'operatore UNION funziona in due condizioni:

  • Le query SELECT DEVONO restituire un numero simile di query.
  • I tipi di dati di tutte le colonne corrispondenti devono essere compatibili.

L'operatore UNION viene normalmente utilizzato per combinare dati di tabelle correlate che non sono state normalizzate perfettamente.

Sintassi

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)];

Ecco una spiegazione per i parametri di cui sopra:

Expression_1, Expression_2, … Expression_n sono i calcoli o le colonne che devi recuperare.

Le tabelle sono le tabelle da cui è necessario recuperare i record.

Le condizioni WHERE sono le condizioni che devono essere soddisfatte affinché i record possano essere recuperati.

Nota: poiché l'operatore UNION non restituisce duplicati, l'uso di UNION DISTINCT non avrà alcun impatto sui risultati.

PostgreSQL Unione

L'operatore UNION rimuove i duplicati. Dimostriamolo.

Abbiamo un database denominato Demo con le seguenti tabelle:

Libro:

PostgreSQL Unione

Prezzo:

PostgreSQL Unione

Eseguiamo il seguente comando:

SELECT id
FROM Book
UNION
SELECT id
FROM Price;

Il comando restituirà quanto segue:

PostgreSQL Unione

La colonna id appare sia nella tabella Libro che in quella Prezzo. Tuttavia, appare solo una volta nel risultato. Il motivo è quello PostgreSQL L'operatore UNION non restituisce duplicati.

PostgreSQL Unione tutto

Questo operatore combina set di risultati da più di un'istruzione SELECT senza rimuovere i duplicati. L'operatore richiede che ciascuna istruzione SELECT abbia un numero simile di campi in set di risultati con tipi di dati simili.

Sintassi:

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)];

Ecco una spiegazione per i parametri di cui sopra:

Expression_1, Expression_2, … Expression_n sono i calcoli o le colonne che devi recuperare.

Le tabelle sono le tabelle da cui è necessario recuperare i record.

Le condizioni WHERE sono le condizioni che devono essere soddisfatte affinché i record possano essere recuperati.

Nota: entrambe le espressioni devono avere un numero uguale di espressioni.

Utilizzeremo le seguenti tabelle:

Libro:

PostgreSQL Unione tutto

Prezzo:

PostgreSQL Unione tutto

Eseguire il seguente comando:

 
SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Dovrebbe restituire quanto segue:

PostgreSQL Unione tutto

I duplicati non sono stati rimossi.

ORDINATO DA

PostgreSQL L'operatore UNION può essere utilizzato insieme alla clausola ORDER BY per ordinare i risultati della query. Per dimostrarlo, utilizzeremo le seguenti tabelle:

Prezzo:

ORDINATO DA

Prezzo2:

ORDINATO DA

Ecco il comando che dimostra come utilizzare l'operatore UNION insieme alla clausola ORDER BY:

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

Il comando restituirà quanto segue:

ORDINATO DA

I record sono stati ordinati in base alla colonna del prezzo. Per impostazione predefinita, la clausola ordina i record in ordine crescente. Per ordinarli in ordine decrescente, aggiungi la clausola DESC come mostrato di seguito:

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

Il comando restituirà quanto segue:

ORDINATO DA

I record sono stati ordinati in base alla colonna del prezzo in ordine decrescente.

Quando utilizzare Union e Quando utilizzare Union all?

Utilizza l'operatore UNION quando hai più tabelle con una struttura simile ma divise per un motivo. È utile quando è necessario rimuovere/eliminare record duplicati.

Utilizza l'operatore UNION ALL quando non è necessario rimuovere/eliminare record duplicati.

Utilizzando pgAdmin

Ora vediamo come vengono eseguite tutte e tre le azioni utilizzando pgAdmin.

Istruzioni per l’uso: PostgreSQL Unione utilizzando pgAdmin

Di seguito è riportato il processo passo dopo passo su come utilizzare PostgreSQL Unione utilizzando pgAdmin

Per ottenere lo stesso risultato tramite pgAdmin, procedi come segue:

Passo 1) Login
Accedi al tuo account pgAdmin.

Passo 2) Fare clic su Database

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Usa il  PostgreSQL Unione utilizzando pgAdmin

Passo 3) Digita la query
Digita la query nell'editor di query:

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

Passo 4) Fare clic sul pulsante Esegui.
Successivamente, fare clic sul pulsante Esegui. Come mostrato nell'immagine qui sotto.

Usa il  PostgreSQL Unione utilizzando pgAdmin

Dovrebbe restituire quanto segue:

Usa il  PostgreSQL Unione utilizzando pgAdmin

Unione tutto

Passo 1) Accedi al tuo account pgAdmin.

Passo 2)

  1. Dalla barra di navigazione a sinistra, fare clic su Database.
  2. Fare clic su Demo.

Usa il  PostgreSQL Union All utilizzando pgAdmin

Passo 3) Digita la query nell'editor di query:

SELECT id
FROM Book
UNION ALL
SELECT id
FROM price;

Passo 4) Fare clic sul pulsante Esegui.

Usa il  PostgreSQL Union All utilizzando pgAdmin

Dovrebbe restituire quanto segue:

Usa il  PostgreSQL Union All utilizzando pgAdmin

ORDINATO DA

L'operatore UNION ALL può essere combinato con la clausola ORDER BY per ordinare i risultati nel set di risultati. Per esempio:

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

Il comando restituirà quanto segue:

Usa il  PostgreSQL ORDINA PER Utilizzando pgAdmin

I risultati sono stati ordinati.

Sintesi

  • PostgreSQL L'operatore UNION combina i risultati di più di uno Istruzione SELECT in un set di risultati.
  • L'operatore UNION non restituisce record duplicati.
  • Per ordinare i risultati, combinalo con la clausola ORDER BY.
  • L'operatore UNION ALL combina i risultati di più istruzioni SELECT in un unico set di risultati.
  • L'operatore UNION ALL non rimuove i duplicati.

Scarica il database utilizzato in questo tutorial