Oct 29, 2023

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.

SQL INSERT INTO SELECT

INSERT INTO SELECT u SQL-u se koristi za umetanje podataka u ciljnu tabelu na osnovu rezultata SELECT upita.

Primer korišćenja INSERT INTO SELECT:

    
    INSERT INTO NoviZaposleni (Ime, Prezime, DatumZaposlenja)
    SELECT Ime, Prezime, DatumZaposlenja
    FROM StariZaposleni
    WHERE DatumZaposlenja > '2023-01-01';
    
    

Ovaj upit će umetnuti podatke iz tabele "StariZaposleni" u tabelu "NoviZaposleni" za sve redove gde je datum zaposlenja nakon 1. januara 2023. godine.

Napomena: Ciljna tabela mora biti prethodno kreirana sa odgovarajućim kolonama, i obezbedite da tipovi podataka u SELECT upitu odgovaraju tipovima podataka u ciljnoj tabeli.