Oracle
 sql >> Database >  >> RDS >> Oracle

Operatori di insiemi Oracle

Utilizzo degli operatori Oracle Set (Unione, Unione tutto, Intersezione e Meno/Eccetto)

Gli operatori Oracle Set possono essere utilizzati per selezionare i dati da più tabelle. Combinano i risultati di due o più query. Quando si utilizzano gli operatori Imposta

a) Ogni clausola SELECT deve avere lo stesso numero di colonne

b) La colonna deve essere dello stesso tipo di dati

c) La colonna deve essere specificata nello stesso ordine in tutte le clausole select.

Ci sono 4 operatori Set:

UNIONE Restituisce tutte le righe univoche restituite da entrambe le query
UNIONE TUTTO Restituisce tutte le righe inclusi i duplicati
INTERSETTA Restituisce solo le righe restituite da entrambe le query
MENO Restituisce righe univoche selezionate dalla prima query ma non le righe selezionate dalla seconda query

Operatore Oracle Union :

L'operatore Oracle Union viene utilizzato per combinare i set di risultati di due o più istruzioni SELECT. Combina entrambi i set di risultati dell'istruzione SELECT e rimuove le righe duplicate tra di loro. Quindi sostanzialmente restituisce le righe distinte

SELECT city_name FROM CUST_DATA
UNION
SELECT nome_città DA SUPP_DATA;

Questa query restituirà righe distinte  di città da "Cust_data" e "Supp_data"

Oracle Union All

L'operatore Oracle Union All viene utilizzato per combinare i set di risultati di due o più istruzioni SELECT. Combina entrambi i set di risultati dell'istruzione SELECT e restituisce così com'è. Quindi può contenere duplicati anche a seconda del set di dati

SELECT nome_città DA CUST_DATA
UNIONE Tutti
SELECT nome_città DA SUPP_DATA
;

Questa query restituirà tutte le righe (anche righe duplicate) delle città da "Cust_data" e "Supp_data"

Differenza tra Union e Union All in Oracle

Unione restituisce le righe distinte mentre Unione tutto restituisce tutte le righe. Quindi dobbiamo fare molta attenzione nella scelta di questi operatori di insiemi

Intersezione Oracle

L'operatore Oracle Intersect viene utilizzato per combinare i set di risultati di due o più istruzioni SELECT. Combina entrambi i set di dati dell'istruzione SELECT e restituisce le righe comuni distinte tra le istruzioni. Quindi, se un record esiste in una query e non nell'altra, verrà omesso dai risultati di INTERSECT.

I risultati sono mostrati dalla parte ombreggiata nella figura sopra

SELECT nome_città DA CUST_DATA
INTERSECT
SELECT nome_città DA SUPP_DATA
;

Questa query restituirà il nome comune della città da "Cust_data" e "Supp_data"

Differenza tra Intersect vs Join

1) L'operatore INTERSECT viene utilizzato per recuperare i record comuni da entrambe le clausole select dell'operatore Intersect Considerando che Join viene utilizzato per recuperare i dati da due tabelle in base alla condizione specificata
2) INTERSECT esegue il confronto per tutte le colonne mentre INNER JOIN solo le colonne specificate.
3) L'operatore INTERSECT restituisce quasi gli stessi risultati della clausola INNER JOIN molte volte.

Oracle meno

L'operatore Sql meno viene utilizzato per combinare i set di risultati di due o più istruzioni SELECT. Combina l'istruzione SELECT e restituisce le righe selezionate dalla prima istruzione select e quindi rimuove dal set di dati tutte le righe recuperate dalla seconda istruzione select

I risultati sono mostrati dalla parte ombreggiata nella figura sopra

SELECT nome_città DA CUST_DATA
MINUS
SELECT nome_città DA SUPP_DATA
;

Questa query restituirà il nome della città da "Cust_data" meno il nome della città "Supp_data"

Qui poiché tutti i dati restituiti dall'istruzione select sono gli stessi, non ha generato alcuna riga.

Inseriamo una riga diversa in cust_data e vediamo i risultati

Ora vediamo se facciamo meno di cust_data da supp_data

SELECT nome_città DA SUPP_DATA
MENO
SELECT nome_città DA CUST_DATA
;

Non meno operatore in molti RDBMS come sql server, mysql. Lì usiamo tranne al posto di meno e ha la stessa funzionalità di meno

Tutti questi operatori di set sql sono validi per RDBMS utilizzati in Market come Oracle, mysql, sql server, Postgres, Teradata

Articoli correlati
eliminare i record duplicati in Oracle:suggerimenti e metodi su come eliminare le righe duplicate dalla tabella Oracle. Sono disponibili varie opzioni per eliminare le righe duplicate senza problemi
Tutorial Oracle Sql:contiene l'elenco di tutti gli articoli utili Oracle sql. Esplorali per conoscere Oracle Sql anche se conosci Oracle Sql
Domande sull'intervista Oracle:dai un'occhiata a questa pagina per le 49 domande e risposte principali di Oracle Interview:Nozioni di base, Oracle SQL per aiutarti nelle interviste. Viene fornito anche materiale aggiuntivo
clausola where in Oracle:limitazione del set di dati, clausola where, clausola what is where nell'istruzione sql, funzioni
a riga singola dell'operatore di confronto in Oracle:dai un'occhiata qui per scoprire le funzioni a riga singola in sql, Oracle data functions, funzioni numeriche in sql, funzione caratteri in sql