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

SET Operatori in SQL

L'operatore utilizzato per unire o combinare due query non è altro che gli operatori SET. Gli operatori classificati in operatori SET sono i seguenti:

  1. Operatore UNION.
  2. Operatore UNION ALL'.
  3. Operatore INTERSECT.
  4. Operatore MENO.

Le regole da seguire per operare con SET Operator sono le seguenti:

  • Il numero di colonne e l'ordine delle colonne devono essere gli stessi.
  • Il tipo di dati deve essere compatibile.

Comprendiamo ciascuno degli operatori SET con esempi.

Considera le seguenti tabelle insieme ai record forniti.

Tabella1:Dipendenti

ID DIPENDENTE FIRST_NAME COGNOME STIPENDIO CITTÀ REPARTO RIDESTORE ORE_LAVORATIVE SESSO
1001 VAIBHAVI MISHRA 65000 PUNE ORACLE 1 12 F
1002 VAIBHAV SHARMA 60000 NOIDA ORACLE 1 9 M
1003 NICHIL VANI 50000 JAIPUR FM 2 10 M
2001 PRACHI SHARMA 55500 CHANDIGARH ORACLE 1 10 F
2002 BHAVESH JAIN 65500 PUNE FM 2 12 M
2003 RUCHIKA JAIN 50000 MUMBAI PROVA 4 9 F
3001 PRANOTI SHENDE 55500 PUNE JAVA 3 9 F
3002 ANUJA DOVE 50500 JAIPUR FM 2 9 F
3003 DEEPAM JAUHARI 58500 MUMBAI JAVA 3 12 M
4001 RAJESH GOUD 60500 MUMBAI PROVA 4 10 M

Tabella 2:Dipendente.

ID DIPENDENTE FIRST_NAME COGNOME STIPENDIO CITTÀ REPARTO RIDESTORE ORE_LAVORATIVE SESSO
1001 Vaibhav Sharma 65000 PUNE ORACLE 1 12 M
1002 Nikhil Vani 60000 NOIDA ORACLE 1 9 M
1003 Vaibhavi Mishra 50000 JAIPUR FM 2 10 F
2001 Ruchika Jain 55500 CHANDIGARH ORACLE 1 10 F
2002 Prachi Sharma 65500 PUNE FM 2 12 F
2003 Bhavesh Jain 50000 MUMBAI PROVA 4 9 M
3001 Deepam Jauhari 55500 PUNE JAVA 3 9 M
3002 ANUJA DOVE 50500 JAIPUR FM 2 9 F
3003 Prano Shende 58500 MUMBAI JAVA 3 12 F
4001 RAJESH GOUD 60500 MUMBAI PROVA 4 10 M

Tabella 3:Gestore.

ID gestore nome_gestore dipartimento_direttore
1 Snehdeep Kaur ORACLE
2 Kirti Kirtane FM
3 Abhishek Manish JAVA
4 Anupam Mishra PROVA

Tabella 4:Gestore1.

ID gestore nome_gestore dipartimento_direttore
1 Ishita Agrawal ORACLE
2 Kirti Kirtane FM
3 Abhishek Manish JAVA
4 Paolo Oakip PROVA

Operatore UNIONE

UNION Operator è il primo operatore utilizzato per unire o combinare due o più istruzioni SELECT. Se e solo se il numero di colonne e l'ordine delle colonne sono gli stessi.

Le righe duplicate non verranno considerate nel risultato ottenuto dopo l'esecuzione dell'operazione UNION.

La sintassi per l'operazione UNION è la seguente,

SELECT * FROM TABLE_NAME1 UNION SELECT * FROM TABLE_NAME2;

Esempio 1: Esegui una query per eseguire l'operazione UNION tra la tabella Employees e la tabella Employee.

SELECT * FROM EMPLOYEES UNION SELECT * FROM EMPLOYEE;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i dati dai dipendenti e la seconda query SELECT recupera i dati dai dati dei dipendenti e l'operazione UNION viene eseguita su entrambe le query SELECT.

L'operazione UNION eliminerà le righe duplicate tra entrambe le tabelle. Il seguente output viene visualizzato come:

Vengono visualizzati entrambi i record della tabella tranne i record duplicati.

Esempio 2: Eseguire una query per eseguire l'operazione UNION tra la tabella Employees e la tabella Employee. Ma mostra solo i record dei dipendenti dalla tabella dei dipendenti che appartengono alla città di Mumbai e dalla tabella dei dipendenti solo i record dei dipendenti il ​​cui stipendio dei dipendenti è maggiore di 50000 e inferiore a 60000.

SELECT * FROM EMPLOYEES WHERE CITY = 'MUMBAI' UNION SELECT * FROM EMPLOYEE WHERE SALARY > 50000 AND SALARY < 60000;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera solo i record il cui dipendente appartiene alla città di Mumbai dalla tabella Impiegati. Ed eseguire l'operazione UNION con la seconda query SELECT recupera solo quei record il cui stipendio del dipendente è maggiore di 50000 ma inferiore a 60000 dalla tabella dei dipendenti. L'operazione UNION eliminerà le righe duplicate tra entrambe le tabelle.

Il seguente output viene visualizzato come:

Vengono visualizzati entrambi i record della tabella tranne i record duplicati.

Esempio 3: Eseguire una query per eseguire l'operazione UNION tra la tabella Employees e la tabella Employee. Vogliamo solo quei record dalla tabella Dipendenti la cui città dipendente appartiene a "Pune" e "Jaipur".

SELECT* FROM EMPLOYEES WHERE CITY IN ('PUNE', 'JAIPUR') UNION SELECT * FROM EMPLOYEE;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i record i cui dipendenti appartengono alle città "Pune" e "Jaipur" dalla tabella Dipendenti. L'operazione UNION viene eseguita con i record recuperati dalla seconda query SELECT dall'impiegato della tabella.

L'operazione UNION eliminerà le righe duplicate tra entrambe le tabelle. Il seguente output viene visualizzato come:

Come tutti possiamo vedere, i primi cinque record del risultato sono quei dipendenti che appartengono alla città di Pune o Jaipur. E i record di riposo provengono dalla tabella dei dipendenti, la seconda query SELECT.

Vengono visualizzati entrambi i record della tabella tranne i record duplicati.

Esempio 4: Eseguire una query per eseguire l'operazione UNION tra la tabella Employees e la tabella Employee. Vogliamo solo quei record dalla tabella Dipendente il cui nome di dipendente inizia con V.

SELECT * FROM EMPLOYEES UNION SELECT * FROM EMPLOYEE WHERE FIRST_NAME LIKE 'V%';

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera tutti i record dalla tabella Impiegati. L'operazione UNION viene eseguita con i record recuperati dalla seconda query SELECT dall'impiegato della tabella il cui nome inizia con 'V'.

L'operazione UNION eliminerà le righe duplicate tra entrambe le tabelle. Il seguente output viene visualizzato come:

Come tutti possiamo, i primi 10 risultati provengono dalla tabella Impiegati e il resto dalla tabella Impiegato il cui nome inizia con "V".

Esempio 5: Eseguire una query per eseguire l'operazione UNION tra la tabella Manager e la tabella Manager1.

SELECT * FROM MANAGER UNION SELECT * FROM MANAGER1;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i dati da Manager e la seconda query SELECT recupera i dati dai dati manager1 e l'operazione UNION viene eseguita su entrambe le query SELECT.

L'operazione UNION eliminerà le righe duplicate tra entrambe le tabelle. Il seguente output viene visualizzato come:

Vengono visualizzati entrambi i record della tabella tranne i record duplicati.

UNION TUTTI gli operatori

L'operatore UNION ALL combina tutti i dati di entrambe le query. Nell'operatore UNION, i record duplicati non sono stati considerati nel risultato, ma UNION ALL ha considerato i record duplicati nel risultato ottenuto dopo l'esecuzione dell'operazione UNION ALL.

La sintassi per l'operazione UNION ALL è la seguente,

SELECT * FROM TABLE_NAME1 UNION ALL SELECT * FROM TABLE_NAME2;

Esempio 1: Eseguire una query per eseguire l'operazione UNION ALL tra la tabella Employees e la tabella Employee.

SELECT * FROM EMPLOYEES UNION ALL SELECT * FROM EMPLOYEE;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i dati dai dipendenti ed esegue l'operazione UNION ALL con i dati recuperati dalla seconda query SELECT recupera i dati dalla tabella dipendenti.

Il seguente output viene visualizzato come:

Tutti i record verranno visualizzati da entrambe le tabelle Employees e Employee, i record duplicati verranno visualizzati anche durante l'esecuzione dell'operazione UNION ALL.

Esempio 2: Eseguire una query per eseguire l'operazione UNION ALL tra la tabella Employees e la tabella Employee. Ma mostra solo i record dei dipendenti dalla tabella dei dipendenti che appartengono alla città di Mumbai. Dalla tabella dei dipendenti, solo i record dei dipendenti il ​​cui stipendio dei dipendenti è 60500 e la città è "Mumbai".

SELECT * FROM EMPLOYEES WHERE CITY = 'MUMBAI' UNION ALL SELECT * FROM EMPLOYEE WHERE SALARY = 60500 AND CITY = 'MUMBAI';

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera solo i record il cui dipendente appartiene alla città di Mumbai dalla tabella Impiegati. Ed eseguire l'operazione UNION ALL con la seconda query SELECT recupera solo i record il cui stipendio dei dipendenti è 60500 e la città è "Mumbai" dalla tabella dei dipendenti.

Il seguente output viene visualizzato come:

Vengono visualizzati entrambi i record della tabella, inclusi i record duplicati mentre eseguiamo le operazioni UNION ALL.

Esempio 3: Eseguire una query per eseguire l'operazione UNION tra la tabella Employees e la tabella Employee. Vogliamo solo quei record dalla tabella Dipendenti la cui città dipendente appartiene a "Pune", "Mumbai" e "Jaipur".

SELECT* FROM EMPLOYEES WHERE CITY IN ('PUNE', 'MUMBAI', 'JAIPUR') UNION ALL SELECT * FROM EMPLOYEE;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i record i cui dipendenti appartengono alle città "Pune", "Mumbai" e "Jaipur" dalla tabella Dipendenti. L'operazione UNION ALL viene eseguita con i record recuperati dalla seconda query SELECT dall'impiegato della tabella.

Il seguente output viene visualizzato come:

Vengono visualizzati entrambi i record della tabella, inclusi i record duplicati mentre eseguiamo le operazioni UNION ALL.

Esempio 4: Eseguire una query per eseguire l'operazione UNION ALL tra la tabella Manager e la tabella Manager1.

SELECT * FROM MANAGER UNION ALL SELECT * FROM MANAGER1;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i dati da Manager ed esegue operazioni UNION ALL con i dati recuperati dalla seconda query SELECT recupera i dati dalla tabella manager1.

Il seguente output viene visualizzato come:

Tutti i record verranno visualizzati sia dalle tabelle Manager che da Manager1; i record duplicati vengono visualizzati mentre eseguiamo le operazioni UNION ALL.

Operatori INTERSECT

L'operatore Interseca viene utilizzato per combinare due o più istruzioni SELECT, ma visualizza solo i dati simili all'istruzione SELECT.

La sintassi per l'operazione INTERSECT è la seguente,

SELECT * FROM TABLE_NAME1 INTERSECT SELECT * FROM TABLE_NAME2;

Esempio 1: Eseguire una query per eseguire l'operazione INTERSECT tra la tabella Employees e la tabella Employee.

SELECT * FROM EMPLOYEES INTERSECT SELECT * FROM EMPLOYEE;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i dati dai dipendenti ed esegue l'operazione INTERSECT con i dati recuperati dalla seconda query SELECT recupera i dati dalla tabella dipendenti.

Il seguente output viene visualizzato come:

Solo i record simili verranno visualizzati da entrambe le tabelle, poiché abbiamo eseguito l'operazione INTERSECT tra la tabella Employees e la tabella Employee.

Esempio 2: Eseguire una query per eseguire l'operazione INTERSECT tra la tabella Manager e la tabella Manager1.

SELECT * FROM MANAGER INTERSECT SELECT * FROM MANAGER1;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i dati da Manager ed esegue l'operazione INTERSECT con i dati recuperati dalla seconda query SELECT recupera i dati dalla tabella Manager1.

Il seguente output viene visualizzato come:

Solo record simili verranno visualizzati da entrambe le tabelle, poiché abbiamo eseguito l'operazione INTERSECT tra la tabella Manager e la tabella Manager1.

Operatori MENO

L'operatore MENO viene utilizzato per restituire le righe presenti nella prima query ma assenti nel resto delle query senza duplicati.

La sintassi per l'operazione MENO è la seguente.

SELECT * FROM TABLE_NAME1 EXCEPT SELECT * FROM TABLE_NAME2;

Nota: La parola chiave MINUS è supportata solo nei database ORACLE. Possiamo usare la parola chiave EXCEPT per altri database per eseguire un'operazione simile.

Esempio 1: Esegui una query per eseguire l'operazione MINUS tra la tabella Employees e la tabella Employee.

SELECT * FROM EMPLOYEES EXCEPT SELECT * FROM EMPLOYEE;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i dati dai dipendenti ed esegue l'operazione MENO con i dati recuperati dalla seconda query SELECT recupera i dati dalla tabella dipendenti.

Il seguente output viene visualizzato come:

Solo i record non corrispondenti verranno visualizzati da entrambe le tabelle, poiché abbiamo eseguito l'operazione MINUS tra la tabella Employees e la tabella Employee.

Esempio 2: Eseguire una query per eseguire l'operazione MINUS tra la tabella Manager e la tabella Manager1.

SELECT * FROM MANAGER EXCEPT SELECT * FROM MANAGER1;

Nella query precedente, abbiamo utilizzato due query SELECT. La prima query SELECT recupera i dati da Manager ed esegue l'operazione MINUS con i dati recuperati dalla seconda query SELECT recupera i dati dalla tabella Manager1.

Il seguente output viene mostrato come:

Solo i record non corrispondenti verranno visualizzati da entrambe le tabelle, poiché abbiamo eseguito l'operazione MINUS tra la tabella Manager e la tabella Manager1.