Oct 29, 2023

SQL ALL, ANY, EXISTS i SOME Operateri

SQL operateri `ALL`, `ANY`, `EXISTS` i `SOME` se koriste za poređenje vrednosti u podupitu sa vrednostima u glavnom upitu. Evo objašnjenja i primera za svaki od ovih operatera:

ALL operator:

Operator `ALL` koristi se za upoređivanje da li svi rezultati podupita zadovoljavaju određeni uslov.

    
    SELECT Ime
    FROM Studenti
    WHERE Bodovi > ALL (SELECT Bodovi FROM Studenti WHERE Godina = 2);
    
    

ANY operator:

Operator `ANY` koristi se za upoređivanje da li bar jedan rezultat podupita zadovoljava određeni uslov.

    
    SELECT Ime
    FROM Proizvodi
    WHERE Cena = ANY (SELECT Cena FROM KonkurentskaRoba 
                        WHERE Kategorija = 'Elektronika');
    
    

EXISTS operator:

Operator `EXISTS` koristi se za proveru postojanja rezultata u podupitu.

    
    SELECT Ime
    FROM Narudžbine
    WHERE EXISTS (SELECT * FROM StavkeNarudžbine 
                    WHERE Narudžbine.ID = StavkeNarudžbine.NarudžbaID);
    
    

SOME operator:

Operator `SOME` se koristi na sličan način kao `ANY` za upoređivanje sa bilo kojim rezultatom podupita.

    
    SELECT Ime
    FROM Proizvodi
    WHERE Cena = SOME (SELECT Cena FROM KonkurentskaRoba 
                        WHERE Kategorija = 'Elektronika');
    
    
Napomena: Sintaksa za kreiranje privremene tabele može se razlikovati u različitim SQL sistemima (npr. SQL Server, MySQL, itd.), pa je važno da koristite odgovarajuću sintaksu za svoju bazu podataka.

SQL Subqueries (Podupiti)

Podupiti su upiti unutar drugih upita i koriste se za dobijanje dodatnih podataka ili filtriranje rezultata glavnog upita.

Primeri upotrebe podupita:

    
    1. Jednostavan podupit u klauzuli WHERE:
    SELECT Ime
    FROM Zaposleni
    WHERE OdeljenjeID = (SELECT OdeljenjeID FROM Odeljenja 
                        WHERE Naziv = 'Računovodstvo');

    2. Podupit u klauzuli SELECT:
    SELECT Ime, (SELECT COUNT(*) FROM Narudzbe 
                 WHERE KupacID = K.KupacID) AS BrojNarudzbi
    FROM Kupci K;
    
    

Podupiti omogućavaju rukovanje složenim logikama i zavise od rezultata drugih upita.

Napomena: Podupiti su korisni za rešavanje složenih problema i omogućavaju vam da izgradite upite koji zavise od rezultata drugih upita.

SQL SELECT INTO TEMPORARY TABLE

SELECT INTO TEMPORARY TABLE u SQL-u se koristi za kreiranje privremene tabele na osnovu rezultata SELECT upita. Privremene tabele su vidljive samo tokom trenutne sesije i automatski se brišu nakon sesije.

Primer korišćenja SELECT INTO Privremena Tabela:

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

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


Napomena: Sintaksa za kreiranje privremene tabele može se razlikovati u različitim SQL sistemima (npr. SQL Server, MySQL, itd.), pa je važno da koristite odgovarajuću sintaksu za svoju bazu podataka.