SQL – Skupovni operatori u selekcijama

Nastavljamo sa SQL upitima i to sa operatorima za spajanje slogova iz dve tabele. Spajanje vršimo pomoću operatora „UNION“ i „UNION ALL“ (unija skupova podataka). Korišćenjem ovih operatora, spajamo slogove iz dve tabale, ali istovremeno izbacujemo duplirane slogove. U sledećem primeru imamo dve tabele sa sličnim podacima, radi se o artiklima u dva magacina. Naš cilj je da kao rezultat upita dobijemo sve različite vrste artikala iz oba magacina. Probajte sledeći upit:


SELECT Artikl FROM Magacin1
UNION
SELECT Artikl FROM Magacin2;

Rezultat će biti kao na slici, tj. dobićemo nazad osam slogova od ukupno deset iz obe tabele. Zbog operatora „UNION“ biće izbačeni slogovi „Jaja“ i „Hleb“, pošto se oni ponavljaju. U slučaju da želimo da izlistamo sve slogove iz obe tabele, bez obzira na ponavljanja, upotrebićemo operator „UNION ALL“:


SELECT Artikl FROM Magacin1
UNION ALL
SELECT Artikl FROM Magacin2;

Kao rezultat dobićemo sve slogove iz obe tabele, tj. ukupno deset slogova.

Operator sličan prethodnim je i „INTERSECT“ tj. presek, i kao što mu ime govori, on služi za dobijanje preseka dva skupa. U ovom slučaju radi se o preseku, tj. istim vrednostima iz obe tabele. Postavićemo sledeći upit:


SELECT Artikl FROM Magacin1
INTERSECT
SELECT Artikl FROM Magacin2;

Kao rezultat dobićemo samo podatke „Jaja“ i „Hleb“, pošto su oni sadržani i u jednoj i u drugoj tabeli.

I poslednji operator koji se bavi slogovima u tabeli, kao skupovima, je operator „MINUS“ (razlika). Kada upotrebimo ovaj operator, kao rezultat vratiće se slogovi koji su sadržani samo u prvoj tabeli, a istovremeno nisu u drugoj. Sintaksa glasi:


SELECT Artikl FROM Magacin1
MINUS
SELECT Artikl FROM Magacin2;

Pratite Krstaricu na www.krstarica.com