Oct 29, 2023

SQL SELECT INTO

SELECT INTO u SQL-u se koristi za kreiranje nove tabele na osnovu rezultata SELECT upita.

Primer korišćenja SELECT INTO:

    
    SELECT Ime, Prezime
    INTO NoviZaposleni
    FROM Zaposleni
    WHERE DatumZaposlenja > '2023-01-01';
    
    

Ovaj upit će kreirati novu tabelu "NoviZaposleni" sa kolonama "Ime" i "Prezime" i kopirati podatke zaposlenih čiji je datum zaposlenja nakon 1. januara 2023. godine.

Napomena: Nova tabela mora biti prethodno kreirana, i morate imati odgovarajuće dozvole za kreiranje nove tabele.

SQL UNION

UNION u SQL-u se koristi za spajanje rezultata više upita u jedan rezultat, pri čemu se eliminišu duplicirani redovi.

Primer korišćenja UNION:

    
    SELECT Ime, Prezime FROM Zaposleni
    UNION
    SELECT Ime, Prezime FROM Klijenti;
    
    

Ovaj upit će spojiti imena i prezimena zaposlenih i klijenata iz tabela "Zaposleni" i "Klijenti" i vratiti jedinstvene vrednosti.

Napomena: `UNION` automatski uklanja duplicirane redove. Ako želite zadržati sve redove, uključujući i duplicirane, možete koristiti `UNION ALL` umesto `UNION`.

SQL JOIN (Spajanje) Operacije

JOIN u SQL-u se koristi za spajanje podataka iz više tabela na osnovu određenih uslova. Postoje različite vrste JOIN operacija:

INNER JOIN (Unutarnji JOIN):

INNER JOIN vraća samo redove koji imaju podudaranja u obe tabelama koje se spajaju.

INNER JOIN Primer
    
    SELECT Narudzba.NarudzbaID, Kupac.Ime
    FROM Narudzba
    INNER JOIN Kupac ON Narudzba.KupacID = Kupac.KupacID;
    
    

Ovaj upit će spojiti tabelu "Narudzba" sa tabelom "Kupac" na osnovu zajedničkog polja "KupacID" i vratiti podatke o narudžbama i imenima kupaca.

LEFT JOIN (Levi JOIN):

LEFT JOIN vraća sve redove iz leve tabele i odgovarajuće redove iz desne tabele.

LEFT JOIN Primer
    
    SELECT Radnik.Ime, Radnik.Pozicija, Projekat.Naziv
    FROM Radnik
    LEFT JOIN Projekat ON Radnik.RadnikID = Projekat.RadnikID;
    
    

Ovaj upit će spojiti tabelu "Radnik" sa tabelom "Projekat" na osnovu zajedničkog polja "RadnikID" i prikazati sve radnike i projekte kojima su dodeljeni, uključujući i one radnike koji nisu dodeljeni projektima.

RIGHT JOIN (Desni JOIN):

RIGHT JOIN je sličan LEFT JOIN-u, ali vraća sve redove iz desne tabele i odgovarajuće redove iz leve tabele.

RIGHT JOIN Primer
    
    SELECT Narudzba.NarudzbaID, Kupac.Ime
    FROM Narudzba
    RIGHT JOIN Kupac ON Narudzba.KupacID = Kupac.KupacID;
    
    

Ovaj upit će spojiti tabelu "Narudzba" sa tabelom "Kupac" na osnovu zajedničkog polja "KupacID" i prikazati sve narudžbe i kupce, uključujući i one kupce koji nisu napravili narudžbe.

FULL JOIN (Puni JOIN):

FULL JOIN vraća sve redove iz obe tabele.

FULL JOIN Primer
    
    SELECT Radnik.Ime, Projekat.Naziv
    FROM Radnik
    FULL JOIN Projekat ON Radnik.RadnikID = Projekat.RadnikID;
    
    

Ovaj upit će spojiti tabelu "Radnik" sa tabelom "Projekat" na osnovu zajedničkog polja "RadnikID" i prikazati sve radnike i projekte, uključujući i one koji nemaju podudaranja.