SQL ne oferă operatorul UNION care ne permite să combinăm seturile de rezultate a două sau mai multe instrucțiuni SELECT într-un singur set de rezultate. Există trei tipuri principale de operatori UNION în SQL: UNION, UNION ALL și UNION DISTINCT.
Acest tutorial explorează aceste trei tipuri de UNIONS și oferă exemple reale și practice de lucru cu ele.
NOTĂ: În acest exemplu, vom folosi baza de date exemplu Sakila în scopuri demonstrative. Asigurați-vă că îl aveți instalat înainte de a executa aceste comenzi. Puteți consulta tutorialul nostru despre asta pentru a afla mai multe.
Operator SQL UNION
După cum sa menționat, operatorul UNION ne permite să combinăm setul de rezultate din două sau mai multe instrucțiuni select și să eliminăm valorile duplicate. Sintaxa operatorului UNION este următoarea:
SELECTAȚI coloana1, coloana2,...
DIN tabelul 1
UNIUNE
SELECTAȚI coloana1, coloana2,...
DIN tabelul 2;
În exemplul de sintaxă anterior, folosim instrucțiunile SELECT pentru a prelua datele din tabelele specificate. Operatorul UNION combină apoi cele două seturi de rezultate într-un singur set. Să luăm un exemplu despre cum să facem acest lucru folosind tabelul de actori care este definit în baza de date Sakila.
Luați în considerare următorul exemplu de interogare care preia numele și prenumele actorilor din tabelul actorilor și din tabelul clientului:
SELECTează prenume, prenumeDE LA actor
UNIUNE
SELECTează prenume, prenume
DE LA client; SELECTează prenume, prenume
DE LA actor
UNIUNE
SELECTează prenume, prenume
DE LA client;
Interogarea anterioară afișează numele și prenumele atât din tabelele actorilor, cât și ale clienților și returnează valorile ca un singur rezultat.
Un exemplu de ieșire este după cum urmează:
Operator SQL UNION ALL
Spre deosebire de operatorul UNION care elimină valorile duplicate din setul de rezultate, operatorul UNION returnează toate rândurile tabelelor, inclusiv duplicatele.
Sintaxa este următoarea:
SELECTAȚI coloana1, coloana2,...DIN tabelul 1
UNIREA TOȚI
SELECTAȚI coloana1, coloana2,...
DIN tabelul 2;
Următorul exemplu selectează numele și prenumele din tabelele de actori și clienți din baza de date Sakila:
DE LA actor
UNIREA TOȚI
SELECTează prenume, prenume
DE LA client;
Un exemplu de ieșire este după cum urmează:
Operator SQL UNION DISTINCT
Celălalt tip de operator de unire este UNION DISTINCT. Acest operator este pur și simplu un duplicat al operatorului UNION care efectuează o acțiune similară.
Sintaxa este următoarea:
SELECTAȚI coloana1, coloana2,...DIN tabelul 1
UNION DISTINCT
SELECTAȚI coloana1, coloana2,...
DIN tabelul 2;
Instrucțiunile SELECT preiau datele din tabelele specificate, iar operatorul UNION DISTINCT combină seturile de rezultate într-un singur set de rezultate care include rândurile unice.
În exemplul bazei de date Sakila, putem rula următoarea comandă:
SELECTează prenume, prenumeDE LA actor
UNION DISTINCT
SELECTează prenume, prenume
DE LA client;
Acest lucru ar trebui să returneze un rezultat similar cu operatorul UNION.
Concluzie
Am învățat cum să lucrăm cu diferitele tipuri de UNIONS în SQL. Operatorul UNION combină setul de rezultate din două sau mai multe instrucțiuni select și elimină înregistrările duplicate. UNION ALL efectuează o acțiune similară, dar include orice rânduri duplicat. În cele din urmă, UNION DISTINCT este identic cu un operator nativ UNION.