Otvori aplikaciju

Predmeti

InformatikaInformatika44 pregledi·Ažurirano 2. јул 2026.·7 stranice

Napredni SQL Upiti: Vodič za Kompleksne Operacije

Napredni SQL upiti su ono što te odvaja od početnika...

1
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Uvod u napredne SQL upite

Dosad si radio samo sa osnovnim SELECT upitima iz jedne tabele, ali u stvarnim bazama podataka informacije su skoro uvek raspoređene u više povezanih tabela. Tu dolaze napredni SQL upiti koji ti omogućavaju da kombinuješ podatke iz različitih tabela i praviš ozbiljne analize.

Najvažniji pojmovi koje moraš da razumeš su JOIN operacije (za spajanje tabela), agregatne funkcije kao što su COUNT() i AVG(), te GROUP BY za grupisanje podataka. Tu su i podupiti - upiti unutar upita koji ti omogućavaju naprednije filtriranje.

💡 Zapamti: Osnova za spajanje tabela su primarni ključ (PK) u jednoj tabeli i strani ključ (FK) u drugoj - to je veza koja omogućava kombinovanje podataka.

2
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Tipovi JOIN operacija

INNER JOIN je najčešći i najvažniji tip spajanja - vraća samo one redove gde se vrednosti poklapaju u obe tabele. Sintaksa je jednostavna: SELECT kolone FROM tabela1 INNER JOIN tabela2 ON tabela1.pk = tabela2.fk.

LEFT JOIN je super kada želiš da vidiš sve entitete iz leve tabele, bez obzira da li imaju parnjaka u desnoj. Na primer, sve učenike čak i one bez ijedne ocene - kolone iz desne tabele će biti NULL ako nema poklapanja.

RIGHT JOIN radi suprotno od LEFT JOIN-a, dok se FULL OUTER JOIN retko koristi na testovima jer kombinuje LEFT i RIGHT JOIN. Venovi dijagrami odlično prikazuju kako ovi JOIN-ovi funkcionišu.

💡 Saveti: Uvek koristi aliase (AS) za tabele kod JOIN-ova - FROM Ucenici AS u je mnogo čitljivije i kraće od pisanja punog naziva tabele.

3
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Grupisanje i agregatne funkcije

GROUP BY ti omogućava da grupišeš redove koji imaju iste vrednosti u određenim kolonama, a zatim primeniš agregatne funkcije poput COUNT(), SUM(), AVG() na svaku grupu. Ovo je ključno za dobijanje statističkih podataka.

Najvažnija razlika koju moraš da zapamtiš: WHERE se izvršava pre GROUP BY, a HAVING posle GROUP BY. WHERE filtrira pojedinačne redove, dok HAVING filtrira cele grupe. U HAVING klauzuli možeš da koristiš agregatne funkcije, u WHERE ne možeš.

Podupiti su upiti unutar upita - spoljni upit koristi rezultat unutrašnjeg. Skalarni podupit vraća jednu vrednost i može se koristiti bilo gde, dok višeredni podupit vraća više redova i često se koristi sa IN, NOT IN operatorima.

💡 Ključno za ispit: Redosled izvršavanja je FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. Ovo objašnjava zašto WHERE ne može da koristi agregatne funkcije!

4
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Praktični primeri sa rešenjima

Za spajanje podataka iz tabela Ucenici i Odeljenja koristiš INNER JOIN preko zajedničke kolone OdeljenjeID: SELECT u.Ime, u.Prezime, o.NazivOdeljenja FROM Ucenici AS u INNER JOIN Odeljenja AS o ON u.OdeljenjeID = o.OdeljenjeID.

Za izračunavanje prosečne ocene po učeniku kombinuješ AVG() funkciju sa GROUP BY: SELECT u.Ime, u.Prezime, AVG(oc.Ocena) AS ProsecnaOcena FROM Ucenici AS u JOIN Ocene AS oc ON u.UcenikID = oc.UcenikID GROUP BY u.UcenikID, u.Ime, u.Prezime.

Kada trebaš da filtriraš grupe, koristiš HAVING umesto WHERE. Za predmete sa prosekom većim od 4.0: SELECT Predmet, AVG(Ocena) AS Prosek FROM Ocene GROUP BY Predmet HAVING AVG(Ocena) > 4.0.

💡 Važna napomena: Sve kolone u SELECT listi koje nisu pod agregatnom funkcijom moraju biti u GROUP BY klauzuli!

5
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Podupiti i napredne tehnike

Podupit ti omogućava da koristiš rezultat jednog upita u drugom upitu. Na primer, za učenike iz odeljenja "IV-2": SELECT Ime, Prezime FROM Ucenici WHERE OdeljenjeID = (SELECT OdeljenjeID FROM Odeljenja WHERE NazivOdeljenja = 'IV-2').

Ovo je često efikasnije od JOIN-a kada ti trebaju podaci samo iz jedne tabele. Skalarni podupiti vraćaju jednu vrednost, dok višeredni rade sa IN operatorom za više rezultata.

Redosled izvršavanja SQL upita je ključan za razumevanje: FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT. Iako pišeš SELECT prvi, baza ga izvršava skoro na kraju!

💡 Za ispit: Agregatne funkcije (SUM, AVG, MIN, MAX) ignorišu NULL vrednosti, ali COUNT(*) broji sve redove uključujući i NULL.

6
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Kratak pregled za ispit

JOIN operacije: INNER JOIN spaja samo poklapanja (najvažniji), LEFT JOIN čuva sve iz leve tabele. Agregatne funkcije COUNT, SUM, AVG rade nad grupama redova koje kreira GROUP BY.

Ključna razlika: WHERE filtrira redove pre grupisanja, HAVING filtrira grupe posle agregacije. Ovo je najčešće pitanje na testu, tako da dobro zapamti!

Podupiti mogu biti skalarni (jedna vrednost) ili višeredni (više redova sa IN operatorom). NULL vrednosti su poseban slučaj - agregatne funkcije ih ignorišu, osim COUNT(*).

💡 Finalni saveti: Koristi aliase za čitljivost, zapamti redosled izvršavanja upita, i vežbaj razliku između WHERE i HAVING - to je garantovano na ispitu!

7
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Mislili smo da nikad nećeš pitati...

Naš AI Companion je AI alat fokusiran na učenike koji nudi više od samih odgovora. Napravljen na milionima Knowunity resursa, pruža relevantne informacije, personalizovane planove učenja, kvizove i sadržaj direktno u chatu, prilagođavajući se tvom individualnom putu učenja.

Možeš preuzeti aplikaciju sa Google Play Store-a i Apple App Store-a.

Tako je! Uživaj u besplatnom pristupu sadržaju za učenje, povezuj se sa drugim učenicima i dobijaj trenutnu pomoć – sve na dohvat ruke.

Najpopularniji sadržaj u Informatika

9
InformatikaInformatika

Uvod u programski jezik (npr. Python)

Upoznavanje sa programskim okruženjem, pisanjem i pokretanjem jednostavnih programa u odabranom jeziku.

1. r. SŠ670
InformatikaInformatika

Veštačka inteligencija i mašinsko učenje

Uvod u osnovne koncepte veštačke inteligencije i mašinskog učenja, kao i njihove primene u svakodnevnom životu i industriji.

4. r. SŠ360
InformatikaInformatika

CSS – responzivni dizajn (osnove)

Upoznavanje sa osnovama responzivnog dizajna i korišćenjem media queries-a za prilagođavanje izgleda veb stranice različitim veličinama ekrana.

2. r. SŠ270
InformatikaInformatika

Uvod u algoritme

Definisanje algoritma, razumevanje njegovih osobina i upoznavanje sa različitim načinima predstavljanja, kao što su pseudokod i dijagram toka.

2. r. SŠ691
InformatikaInformatika

Grafički prikaz podataka

Kreiranje različitih tipova grafikona (stubičasti, linijski, kružni) za jasnije i vizuelno privlačnije predstavljanje podataka.

7. r.1201
InformatikaInformatika

Relacioni model podataka

Učenje o osnovnim konceptima relacionog modela, uključujući entitete, atribute, relacije, primarne i strane ključeve.

4. r. SŠ360
InformatikaInformatika

HTML – struktura veb stranice

Učenje o naprednijim HTML oznakama, semantičkim HTML5 elementima i ugradnji multimedijalnih sadržaja za obogaćivanje veb stranica.

2. r. SŠ990
InformatikaInformatika

Kategorije softvera

Razumevanje različitih kategorija softvera, uključujući sistemski, aplikativni i uslužni softver, kao i softver otvorenog koda.

2. r. SŠ800
InformatikaInformatika

Uvod u baze podataka

Razumevanje svrhe i tipova baza podataka, kao i osnovnih koncepata sistema za upravljanje bazama podataka (DBMS).

3. r. SŠ530

Najpopularniji sadržaj

9

Učenici nas obožavaju — i ti ćeš takođe.

4.6/5App Store
4.7/5Google Play

Aplikacija je super laka za korišćenje i odlično dizajnirana. Našao sam sve što mi je trebalo i dosta sam naučio iz prezentacija! Definitivno ću koristiti aplikaciju za školski zadatak! A naravno, pomaže i kao inspiracija.

Stefan SiOS korisnik

Ova aplikacija je stvarno odlična. Tu je toliko beleški za učenje i pomoći [...]. Na primer, problem mi je francuski, a aplikacija ima toliko opcija za pomoć. Zahvaljujući ovoj aplikaciji, poboljšao sam francuski. Preporučio bih je svima.

Samantha KlichAndroid korisnik

Vau, stvarno sam oduševljena. Probala sam aplikaciju jer sam je videla u reklamama mnogo puta i bila sam potpuno šokirana. Ova aplikacija je POMOĆ koju želiš za školu i pre svega, nudi toliko stvari, kao što su vežbe i sažeci, što mi je lično bilo VEOMA korisno.

AnaiOS korisnik

InformatikaInformatika44 pregledi·Ažurirano 2. јул 2026.·7 stranice

Napredni SQL Upiti: Vodič za Kompleksne Operacije

Napredni SQL upiti su ono što te odvaja od početnika - omogućavaju ti da kombinuješ podatke iz više tabela, praviš složene kalkulacije i dobijaš prave odgovore iz baze podataka. Ovo je materijal koji ćeš definitivno imati na ispitu i koristiti...

1
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Registruj se da vidiš sadržaj. Besplatno je!

  • Pristup svim dokumentima
  • Poboljšaj svoje ocene
  • Pridruži se milionima učenika

Registracijom prihvataš Uslove korišćenja i Pravila privatnosti

Uvod u napredne SQL upite

Dosad si radio samo sa osnovnim SELECT upitima iz jedne tabele, ali u stvarnim bazama podataka informacije su skoro uvek raspoređene u više povezanih tabela. Tu dolaze napredni SQL upiti koji ti omogućavaju da kombinuješ podatke iz različitih tabela i praviš ozbiljne analize.

Najvažniji pojmovi koje moraš da razumeš su JOIN operacije (za spajanje tabela), agregatne funkcije kao što su COUNT() i AVG(), te GROUP BY za grupisanje podataka. Tu su i podupiti - upiti unutar upita koji ti omogućavaju naprednije filtriranje.

💡 Zapamti: Osnova za spajanje tabela su primarni ključ (PK) u jednoj tabeli i strani ključ (FK) u drugoj - to je veza koja omogućava kombinovanje podataka.

2
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Registruj se da vidiš sadržaj. Besplatno je!

  • Pristup svim dokumentima
  • Poboljšaj svoje ocene
  • Pridruži se milionima učenika

Registracijom prihvataš Uslove korišćenja i Pravila privatnosti

Tipovi JOIN operacija

INNER JOIN je najčešći i najvažniji tip spajanja - vraća samo one redove gde se vrednosti poklapaju u obe tabele. Sintaksa je jednostavna: SELECT kolone FROM tabela1 INNER JOIN tabela2 ON tabela1.pk = tabela2.fk.

LEFT JOIN je super kada želiš da vidiš sve entitete iz leve tabele, bez obzira da li imaju parnjaka u desnoj. Na primer, sve učenike čak i one bez ijedne ocene - kolone iz desne tabele će biti NULL ako nema poklapanja.

RIGHT JOIN radi suprotno od LEFT JOIN-a, dok se FULL OUTER JOIN retko koristi na testovima jer kombinuje LEFT i RIGHT JOIN. Venovi dijagrami odlično prikazuju kako ovi JOIN-ovi funkcionišu.

💡 Saveti: Uvek koristi aliase (AS) za tabele kod JOIN-ova - FROM Ucenici AS u je mnogo čitljivije i kraće od pisanja punog naziva tabele.

3
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Registruj se da vidiš sadržaj. Besplatno je!

  • Pristup svim dokumentima
  • Poboljšaj svoje ocene
  • Pridruži se milionima učenika

Registracijom prihvataš Uslove korišćenja i Pravila privatnosti

Grupisanje i agregatne funkcije

GROUP BY ti omogućava da grupišeš redove koji imaju iste vrednosti u određenim kolonama, a zatim primeniš agregatne funkcije poput COUNT(), SUM(), AVG() na svaku grupu. Ovo je ključno za dobijanje statističkih podataka.

Najvažnija razlika koju moraš da zapamtiš: WHERE se izvršava pre GROUP BY, a HAVING posle GROUP BY. WHERE filtrira pojedinačne redove, dok HAVING filtrira cele grupe. U HAVING klauzuli možeš da koristiš agregatne funkcije, u WHERE ne možeš.

Podupiti su upiti unutar upita - spoljni upit koristi rezultat unutrašnjeg. Skalarni podupit vraća jednu vrednost i može se koristiti bilo gde, dok višeredni podupit vraća više redova i često se koristi sa IN, NOT IN operatorima.

💡 Ključno za ispit: Redosled izvršavanja je FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → ORDER BY. Ovo objašnjava zašto WHERE ne može da koristi agregatne funkcije!

4
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Registruj se da vidiš sadržaj. Besplatno je!

  • Pristup svim dokumentima
  • Poboljšaj svoje ocene
  • Pridruži se milionima učenika

Registracijom prihvataš Uslove korišćenja i Pravila privatnosti

Praktični primeri sa rešenjima

Za spajanje podataka iz tabela Ucenici i Odeljenja koristiš INNER JOIN preko zajedničke kolone OdeljenjeID: SELECT u.Ime, u.Prezime, o.NazivOdeljenja FROM Ucenici AS u INNER JOIN Odeljenja AS o ON u.OdeljenjeID = o.OdeljenjeID.

Za izračunavanje prosečne ocene po učeniku kombinuješ AVG() funkciju sa GROUP BY: SELECT u.Ime, u.Prezime, AVG(oc.Ocena) AS ProsecnaOcena FROM Ucenici AS u JOIN Ocene AS oc ON u.UcenikID = oc.UcenikID GROUP BY u.UcenikID, u.Ime, u.Prezime.

Kada trebaš da filtriraš grupe, koristiš HAVING umesto WHERE. Za predmete sa prosekom većim od 4.0: SELECT Predmet, AVG(Ocena) AS Prosek FROM Ocene GROUP BY Predmet HAVING AVG(Ocena) > 4.0.

💡 Važna napomena: Sve kolone u SELECT listi koje nisu pod agregatnom funkcijom moraju biti u GROUP BY klauzuli!

5
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Registruj se da vidiš sadržaj. Besplatno je!

  • Pristup svim dokumentima
  • Poboljšaj svoje ocene
  • Pridruži se milionima učenika

Registracijom prihvataš Uslove korišćenja i Pravila privatnosti

Podupiti i napredne tehnike

Podupit ti omogućava da koristiš rezultat jednog upita u drugom upitu. Na primer, za učenike iz odeljenja "IV-2": SELECT Ime, Prezime FROM Ucenici WHERE OdeljenjeID = (SELECT OdeljenjeID FROM Odeljenja WHERE NazivOdeljenja = 'IV-2').

Ovo je često efikasnije od JOIN-a kada ti trebaju podaci samo iz jedne tabele. Skalarni podupiti vraćaju jednu vrednost, dok višeredni rade sa IN operatorom za više rezultata.

Redosled izvršavanja SQL upita je ključan za razumevanje: FROM/JOIN → WHERE → GROUP BY → HAVING → SELECT → DISTINCT → ORDER BY → LIMIT. Iako pišeš SELECT prvi, baza ga izvršava skoro na kraju!

💡 Za ispit: Agregatne funkcije (SUM, AVG, MIN, MAX) ignorišu NULL vrednosti, ali COUNT(*) broji sve redove uključujući i NULL.

6
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Registruj se da vidiš sadržaj. Besplatno je!

  • Pristup svim dokumentima
  • Poboljšaj svoje ocene
  • Pridruži se milionima učenika

Registracijom prihvataš Uslove korišćenja i Pravila privatnosti

Kratak pregled za ispit

JOIN operacije: INNER JOIN spaja samo poklapanja (najvažniji), LEFT JOIN čuva sve iz leve tabele. Agregatne funkcije COUNT, SUM, AVG rade nad grupama redova koje kreira GROUP BY.

Ključna razlika: WHERE filtrira redove pre grupisanja, HAVING filtrira grupe posle agregacije. Ovo je najčešće pitanje na testu, tako da dobro zapamti!

Podupiti mogu biti skalarni (jedna vrednost) ili višeredni (više redova sa IN operatorom). NULL vrednosti su poseban slučaj - agregatne funkcije ih ignorišu, osim COUNT(*).

💡 Finalni saveti: Koristi aliase za čitljivost, zapamti redosled izvršavanja upita, i vežbaj razliku između WHERE i HAVING - to je garantovano na ispitu!

7
of 7
# Napredni SQL upiti

Uvod u napredne SQL upite

Do sada smo radili osnovne `SELECT`, `FROM`, `WHERE` upite za izvlačenje
podataka iz jedne

Registruj se da vidiš sadržaj. Besplatno je!

  • Pristup svim dokumentima
  • Poboljšaj svoje ocene
  • Pridruži se milionima učenika

Registracijom prihvataš Uslove korišćenja i Pravila privatnosti

Mislili smo da nikad nećeš pitati...

Naš AI Companion je AI alat fokusiran na učenike koji nudi više od samih odgovora. Napravljen na milionima Knowunity resursa, pruža relevantne informacije, personalizovane planove učenja, kvizove i sadržaj direktno u chatu, prilagođavajući se tvom individualnom putu učenja.

Možeš preuzeti aplikaciju sa Google Play Store-a i Apple App Store-a.

Tako je! Uživaj u besplatnom pristupu sadržaju za učenje, povezuj se sa drugim učenicima i dobijaj trenutnu pomoć – sve na dohvat ruke.

Najpopularniji sadržaj u Informatika

9
InformatikaInformatika

Uvod u programski jezik (npr. Python)

Upoznavanje sa programskim okruženjem, pisanjem i pokretanjem jednostavnih programa u odabranom jeziku.

1. r. SŠ670
InformatikaInformatika

Veštačka inteligencija i mašinsko učenje

Uvod u osnovne koncepte veštačke inteligencije i mašinskog učenja, kao i njihove primene u svakodnevnom životu i industriji.

4. r. SŠ360
InformatikaInformatika

CSS – responzivni dizajn (osnove)

Upoznavanje sa osnovama responzivnog dizajna i korišćenjem media queries-a za prilagođavanje izgleda veb stranice različitim veličinama ekrana.

2. r. SŠ270
InformatikaInformatika

Uvod u algoritme

Definisanje algoritma, razumevanje njegovih osobina i upoznavanje sa različitim načinima predstavljanja, kao što su pseudokod i dijagram toka.

2. r. SŠ691
InformatikaInformatika

Grafički prikaz podataka

Kreiranje različitih tipova grafikona (stubičasti, linijski, kružni) za jasnije i vizuelno privlačnije predstavljanje podataka.

7. r.1201
InformatikaInformatika

Relacioni model podataka

Učenje o osnovnim konceptima relacionog modela, uključujući entitete, atribute, relacije, primarne i strane ključeve.

4. r. SŠ360
InformatikaInformatika

HTML – struktura veb stranice

Učenje o naprednijim HTML oznakama, semantičkim HTML5 elementima i ugradnji multimedijalnih sadržaja za obogaćivanje veb stranica.

2. r. SŠ990
InformatikaInformatika

Kategorije softvera

Razumevanje različitih kategorija softvera, uključujući sistemski, aplikativni i uslužni softver, kao i softver otvorenog koda.

2. r. SŠ800
InformatikaInformatika

Uvod u baze podataka

Razumevanje svrhe i tipova baza podataka, kao i osnovnih koncepata sistema za upravljanje bazama podataka (DBMS).

3. r. SŠ530

Najpopularniji sadržaj

9

Učenici nas obožavaju — i ti ćeš takođe.

4.6/5App Store
4.7/5Google Play

Aplikacija je super laka za korišćenje i odlično dizajnirana. Našao sam sve što mi je trebalo i dosta sam naučio iz prezentacija! Definitivno ću koristiti aplikaciju za školski zadatak! A naravno, pomaže i kao inspiracija.

Stefan SiOS korisnik

Ova aplikacija je stvarno odlična. Tu je toliko beleški za učenje i pomoći [...]. Na primer, problem mi je francuski, a aplikacija ima toliko opcija za pomoć. Zahvaljujući ovoj aplikaciji, poboljšao sam francuski. Preporučio bih je svima.

Samantha KlichAndroid korisnik

Vau, stvarno sam oduševljena. Probala sam aplikaciju jer sam je videla u reklamama mnogo puta i bila sam potpuno šokirana. Ova aplikacija je POMOĆ koju želiš za školu i pre svega, nudi toliko stvari, kao što su vežbe i sažeci, što mi je lično bilo VEOMA korisno.

AnaiOS korisnik