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:
Prezzo:
Eseguiamo il seguente comando:
SELECT id FROM Book UNION SELECT id FROM Price;
Il comando restituirà quanto segue:
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:
Prezzo:
Eseguire il seguente comando:
SELECT id FROM Book UNION ALL SELECT id FROM price;
Dovrebbe restituire quanto segue:
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:
Prezzo2:
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:
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:
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
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
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.
Dovrebbe restituire quanto segue:
Unione tutto
Passo 1) Accedi al tuo account pgAdmin.
Passo 2)
- Dalla barra di navigazione a sinistra, fare clic su Database.
- Fare clic su Demo.
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.
Dovrebbe restituire quanto segue:
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:
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