naredba select ii - wordpress.com · sql programski jezik koji je projektovan za potrebe...
TRANSCRIPT
![Page 1: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/1.jpg)
Naredba SELECT II
Ciljevi lekcije
Upoznati se sa mogućnostima SELECT naredbe za generisanje sumarnih
informacija.
Nauĉiti osnove korišćenja naredbe SELECT za pretraživanje podataka u većem
broju tabela.
Upoznati se sa razliĉitim tipovima spoja koji mogu da postoje izmeĊu tabela.
Upoznati se sa mogućnošću kombinovanja rezultata većeg broja upita.
U ovoj lekciji će biti obraĊene naprednije teme vezane za korišćenje SELECT naredbe
za pretraživanje i pribavljanje podataka iz relacione baze podataka. U prethodnoj lekciji
smo obradili osnovne oblike SELECT naredbe i videli kako naredba može da se koristi
za pribavljanje podataka iz jedne tabele. U ovoj lekciji upoznaćemo se sa mogućnošću
grupisanja podataka po razliĉitim kriterijumima. Videćemo kako je u rezultujućoj tabeli
moguće kombinovati podatke iz nekoliko razliĉitih tabela. TakoĊe, upoznaćemo se i sa
mogućnostima kombinovanja rezultata većeg broja SQL upita.
Neophodno predznanje
Relacija
Tabela sa vrstama i kolonama.
Atribut relacije
Predstavlja osobinu entiteta predstavljenog relacijom. Atribut je praktiĉno imenovana
kolona relacije odnosno tabele, koje se odnose na svojstva objekta predstavljenog
relacijom.
Torka relacije
Vrsta relacije.
Spoljni kljuĉ / Strani kljuĉ
![Page 2: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/2.jpg)
Atribut ili skup atributa jedne relacije koji se uparuje sa kljuĉem kandidatom neke druge
ili iste relacije.
Referencijalni integritet
Ako postoji neki spoljni kljuĉ u relaciji, njegova vrednost mora biti jednaka vrednosti
kljuĉa kandidata neke torke u matiĉnoj relaciji ili njegova vrednost mora biti NULL.
SQL
Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u
Sistemima za upravljanje relacionim bazama podataka (Relational Database Management
Systems - RDBMS), za kreiranje i modifikacija šema relacione baze podataka i za
kontrolu pristupa objektima baze podataka.
Naredba SELECT
SQL naredba koja se koristi za pribavljanje podatke iz jedne tabele ili više povezanih
tabela koje se nalaze u relacionoj bazi podataka.
Klauzule GROUP BY i HAVING
U prethodnoj lekciji upoznali smo se sa funkcijama agregacije. Ove funkcije imaju
zadatak da omoguće generisanje sumarnih informacija na osnovu podataka u relacionoj
bazi podataka.
Klauzula GROUP BY ima zadatak da omogući grupisanje vrsta u rezultujućoj tabeli na
osnovu zajedniĉkih vrednosti. Time se povećava vrednost funkcija agregacije jer se u
kombinaciji sa GROUP BY klauzulom mogu primenjivati na grupe vrsta a ne samo na
ĉitavu rezultujuću tabelu.
Primer 1
Potrebno je voditi raĉuna, da ukoliko ne postoji GROUP BY klauzula, u SELECT
klauzuli nije moguće kombinovati funkcije agregacije sa imenima kolona. U nastavku je
dat SQL upit koji NE MOŢE DA SE IZVRŠI i koji će dovesti do POJAVE GREŠKE.
![Page 3: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/3.jpg)
SELECT Ime, Prezime, SUM(Plata)
FROM RADNIK;
Ovaj upit je moguć samo uz upotrebu GROUP BY klauzule.
Klauzula GROUP BY zahteva od DBMS-a da izvrši sortiranje rezultujuće tabele prema
specificiranim kolonama i izvrši grupisanje vrsta koje imaju iste vrednosti za
specificirane kolone. Ukoliko su prisutne funkcije agregacije one će se primeniti na tako
dobijene grupe. Tek uz prisustvo GROUP BY klauzule moguće je u SELECT klauzuli
kombinovati imena kolona i funkcije agregacije.
Bitno je da napomenuti da se klauzula GROUP BY izvršava nakon klauzule WHERE
odnosno da se grupisanje vrši tek nakon što su odreĊene vrste koje treba da uĊu u sastav
rezultujuće tabele.
Primer 2
U nastavku je dat primer SQL upita koji za svaki sektor raĉuna broj radnika koji rade u
njemu. Za grupisanje radnika po broju sektora u kome radi iskorišćena je GROUP BY
klauzula.
SELECT Sektor, COUNT(*)
FROM RADNIK
GROUP BY Sektor;
Klauzula HAVING omogućava filtriranje rezultata dobijenih korišćenjem GROUP BY
klauzule. Ova klauzula primenjuje uslov filtriranje na formirane grupe.
Primer 3
![Page 4: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/4.jpg)
SQL upit iz prethodnog primera je modifikovan, korišćenjem HAVING klauzule, tako da
su prikazani podaci samo o sektorima koji imaju više od jednog radnika.
SELECT Sektor, COUNT(*) AS BrojRadnika
FROM RADNIK
GROUP BY Sektor
HAVING COUNT(*) > 1;
Primena
Klauzule GROUP BY i HAVING je moguće kombinovati sa WHERE klauzulom. Pri
tome treba voditi raĉuna o redosledu izvršavanja (isti je redosled po kome se klauzule
reĊaju prilikom pisanja SELECT naredbe):
1. WHERE - primenjuje se predikat koji odreĊuje vrste koje ulaze u sastav
rezultujuće tabele
2. GROUP BY - vrši se grupisanje vrsta u rezultujućoj tabeli
3. HAVING - primenjuje se predikat koji odreĊuje vrste koje će ostati u rezultatu
upita
4. ORDER BY - sortiranje rezultata se vrši tek na kraju
Sledeći upit prikazuje sektore u kojima je broj radnika ženskog pola veći od 1.
SELECT Sektor, COUNT(*) AS BrojRadnika
FROM RADNIK
WHERE Pol = 'Ž'
GROUP BY Sektor
HAVING COUNT(*) > 1;
![Page 5: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/5.jpg)
Prilikom korišćenja klauzule GROUP BY, sve kolone koje su navedene u klauzuli
SELECT a na koje nije primenjena neka funkcija agregacije, MORAJU BITI
NAVEDENE U GROUP BY KLAUZULI. U suprotnom SQL upit neće moći da se
izvrši.
Primer 4
Klauzulu GROUP BY je moguće primeniti istovremeno na veći broj kolona. Pri tome su
kriterijum za formiranje grupa zajedniĉke vrednosti u specificiranim kolonama. Prilikom
formiranja grupa vodi se raĉuna i o redosledu po kome su kolone za grupisanje navedene
(kao da se formiraju grupe sa podgrupama u okviru njih).
SELECT Sektor, Pol, AVG(Plata) AS ProsekPlata
FROM RADNIK
GROUP BY Sektor, Pol
ORDER BY AVG(Plata);
![Page 6: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/6.jpg)
Spajanje tabela
Svi SQL upiti koje smo do sada razmatrali su koristili podatke iz samo jedne tabele.
Ĉesto se javlja situacija da se tražena informacija nalazi u većem broju tabela. U takvim
situacijama potrebno je izvršiti spajanje vrsta iz razliĉitih tabela i generisanje rezultujuće
tabele.
Za pribavljanje podataka iz većeg broja tabela dovoljno je u klauzuli FROM navesti
imena tabela iz kojih želimo da pribavimo podatke. Da bi spajanje tabela bilo uspešno,
osim u nekim specijalnim sluĉajevima, potrebno je da navedemo uslov spoja, odnosno da
navedemo kolone na osnovu ĉijih vrednosti se vrši spajanje vrsta iz razliĉitih tabela.
Spajanje tabela se vrši tako što se najĉešće uparuje strani kljuĉ iz jedne tabele sa
primarnim kljuĉem koji referencira u drugoj tabeli. Uslov spajanja može da se zada u
okviru WHERE klauzule ili korišćenjem kljuĉne reĉi JOIN u okviru FROM klauzule.
Spoj na jednakost (equi-join) obezbeĊuje spajanje podataka iz dve ili više tabela na
osnovu jednakosti odgovarajućih atributa, obiĉno na osnovu primarnih i spoljnih
kljuĉeva. Najjednostavniji sluĉaj navoĊenja spoja je kada se u WHERE klauzuli
specificira uslov spoja po jednakosti.
Dekartov proizvod je sluĉaj kada u WHERE klauzuli ne postoji uslov spoja, a u FROM
klauzuli je navedeno više tabela. U tom sluĉaju nema spajanja vrsta po vrednosti nekog
atributa, već se pravi kombinacija svake vrste iz jedne tabele sa svakom vrstom iz druge
tabele (u sluĉaju Dekartovog proizvoda dve tabele)
Spoljni spoj (outer-join) omogućava spajanje dve tabele po vrednosti nekog atributa
(kao kod equi-join), ali i ukljuĉivanje onih torki (vrsta) iz jedne ili druge tabele (ili iz
obe), koje ne zadovoljavaju uslov jednakosti.
Da bi bolje razumeli razliĉite tipove spoja koristićemo tabele RADNIK i SEKTOR ali u
nešto jednostavnijem obliku. Pojednostavljene verzije tabela, RADNIK1 i SEKTOR1, su
date u nastavku. Za svaki tip spoja daćemo oba oblika navoĊenja uslova spoja: i
korišćenjem WHERE klauzule i korišćenjem kljuĉne reĉi JOIN u klauzuli FROM.
![Page 7: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/7.jpg)
Tabela 1 Modifikovana tabela RADNIK
Tabela 2 Modifikovana tabela SEKTOR
Dekartov proizvod (cross-join)
Dekartov proizvod dve tabele (A CROSS JOIN B) se dobija tako što se svaka vrsta iz
jedne tabele kombinuje sa svakom vrstom iz druge tabele.
Primer 5
Prilikom korišćenja Dekartovog proizvoda tabela treba voditi raĉuna da sintaksa CROSS
JOIN nije podržana od strane MS Access-a.
SELECT * FROM SEKTOR1, RADNIK1;
ili
SELECT * FROM SEKTOR1 CROSS JOIN RADNIK1;
![Page 8: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/8.jpg)
Unutrašnji spoj (inner-join)
Inner join predstavlja najĉešće korišćeni tip spoja. Ovaj tip spoja, u osnovi, definiše
presek vrsta iz tabela koje uĉestvuju u spoju.
Prilikom spajanja dve tabele (A INNER JOIN B) uzimaju se sve vrste iz tabele A i
pronalazi im se odgovarajuća vrsta u tabeli B. Ukoliko vrsta iz tabele A nema
odgovarajuću vrstu u tabeli B ne ukljuĉuje se u rezultat. Ukoliko vrsti iz tabele A
odgovara više vrsta tabele B ona se u rezultatu ponavlja više puta (po jednom za svaku
odgovarajuću vrstu u tabeli B).
![Page 9: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/9.jpg)
Primer 6
Prilikom spajanja tabela treba voditi raĉuna o tome da kolone u razliĉitim tabelama mogu
imati ista imena. Potrebno je obezbediti mehanizam koji će DBMS-u precizno
specificirati kolonu koju želite da referencirate. U takvim situacijama se koristi sintaksa
IME_TABELE.IME_KOLONE. U SQL upitima koji su dati u nastavku taj pristup je
iskorišćen za kolone SEKTOR1.Broj i RADNIK1.Sektor mada nije bilo neophodno jer
kolone imaju razliĉita imena. Isti pristup treba primeniti i za klauzulu SELECT ukoliko
se javi sliĉan problem.
SELECT * FROM SEKTOR1, RADNIK1 WHERE SEKTOR1.Broj = RADNIK1.Sektor;
ili
SELECT * FROM SEKTOR1 INNER JOIN RADNIK1
ON SEKTOR1.Broj = RADNIK1.Sektor;
Levi spoljašnji spoj (left-outer join)
Left-outer join u osnovi predstavlja prošireni inner-join. Ovaj tip spoja pored vrsta koje
ukljuĉuje unutrašnji spoj ukljuĉuje i vrste iz tabele A (leve tabele) koje nemaju
odgovarajuću vrstu u tabeli B (desnoj tabeli). Kolone iz tabele B u ovom sluĉaju imaju
vrednost NULL.
![Page 10: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/10.jpg)
Primer 7
SELECT *
FROM SEKTOR1 LEFT OUTER JOIN RADNIK1
ON SEKTOR1.Broj = RADNIK1.Sektor;
Desni spoljašnji spoj (right-outer join)
Right outer join funkcioniše kao i left outer join samo je sada uloga tabela promenjena.
Desni spoljašnji spoj u rezultat ukljuĉuje vrste iz tabele B (desne tabele) koje nemaju
odgovarajuću vrstu u tabeli A (levoj tabeli).
Primer 8
SELECT * FROM SEKTOR1 RIGHT OUTER JOIN RADNIK1
ON SEKTOR1.Broj = RADNIK1.Sektor;
![Page 11: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/11.jpg)
Potpuni spoljašnji spoj (full-outer join)
Full outer join predstavlja kombinaciju rezultata koje vraćaju left outer i right outer join.
Poptpuni spoljašnji spoj sadrži vrste iz obe tabele (i iz A i iz B) koje nemaju
odgovarajuće slogove u drugoj tabeli.
Primer 9
MS Access ne podržava FULL OUTER JOIN sintaksu koja je korišćena u narednom
SQL upitu.
SELECT *
FROM SEKTOR1 FULL OUTER JOIN RADNIK1
ON SEKTOR1.Broj = RADNIK1.Sektor;
![Page 12: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/12.jpg)
Primena
Primer 10
U nastavku je dat SQL upit koji prikazuje imena sektora i broj radnika koji rade u njima.
Obratite pažnju da je kod ovog upita iskorišćena mogućnost da se tabelama dodele
pseudonimi.
SELECT S.Broj, S.Naziv, COUNT(*) AS BrojR FROM SEKTOR1 AS S, RADNIK1 AS R
WHERE S.Broj=R.Sektor GROUP BY S.Broj, S.Naziv;
Primer 11
Sledeći SQL upit za sve žene radnike odreĊuje imena projekata na kojima su angažovane.
Spajanje tabela u ovom upitu izvedeno je korišćenjem WHERE klauzule.
Obratite pažnju da WHERE klauzula pored uslova spoja može da sadrži i uslove kojima
se selektuju vrste koje će ući u rezultujuću tabelu.
TakoĊe, obratite pažnju da sada podatke izvlaĉimo iz tri tabela: RADNIK, RADI_NA i
PROJEKAT. Broj tabela iz kojih izvlaĉimo podatke nije niĉim ograniĉen. Potrebno je
voditi raĉuna da spojevi izmeĊu tabela budu definisani na odgovarajući naĉin kako bi
dobili željene podatke. Kako je već napomenuto spoj se najĉešće definiše izmeĊu
spoljašnjeg kljuĉa u jednoj tabeli i primarnog kljuĉa koji se referencira u drugoj tabeli
(RADI_NA.Radnik i RADNIK.MatBr, RADI_NA.Projekat i PROJEKAT.Broj). Za
spajanje razliĉitih tabela mogu se kombinovati razliĉiti tipovi spoja.
SELECT R.MatBr, R.Ime, R.Prezime, P.Naziv
FROM RADNIK AS R, RADI_NA AS RN, PROJEKAT AS P WHERE R.MatBr = RN.Radnik AND RN.Projekat = P.Broj AND
R.Pol = "Ž";
![Page 13: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/13.jpg)
Primer 12
Naredni SQL upit za svaki sektor daje ukupan broj radnih sati koje radnici provode na
projektima za koje je taj sektor zadužen. MS Access zahteva da spojevi izmeĊu tabela
budu grupisani korišćenjem zagrada.
SELECT S.Broj, S.Naziv, Sum(RN.Sati) AS SatiUkupno
FROM SEKTOR AS S, PROJEKAT AS P, RADI_NA AS RN
WHERE S.Broj = P.Sektor AND P.Broj = RN.Projekat
GROUP BY S.Broj, S.Naziv;
Kombinovanje rezultata više SQL upita
Programski jezik SQL dozvoljava kombinovanje rezultata većeg broj SQL upita
korišćenjem operacija za rad sa skupovima: unija (UNION), presek (INTERSECT) i
razlika (MINUS).
Klauzula UNION kombinuje rezultate dva ili više upita u jednu rezultujuću tabelu.
Rezultati upita koji se kombinuju moraju imati kolone koje se slažu po broju (isti broj
kolona), redosledu (odgovarajuće kolone se nalaze na istim pozicijama) i tipu
(odgovarajuće kolone moraju imati kompatibilne tipove).
![Page 14: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/14.jpg)
Klauzula INTERSECT vraća samo vrste koje se javljaju u rezultujućim tabelama svih
SQL upita koji se kombinuju.
Klauzula MINUS vraća samo one vrste koje se javljaju u rezultatu provg SQL upita, ali
se ne javljaju i u rezultatima ostalih SQL upita.
Primer 13
SQL upit u nastavku koristi klauzulu UNION da bi implementirao full-outer join koji
nije podržan u MS Access-u.
SELECT *
FROM SEKTOR1 LEFT OUTER JOIN RADNIK1 ON
SEKTOR1.Broj=RADNIK1.Sektor
UNION
SELECT *
FROM SEKTOR1 RIGHT OUTER JOIN RADNIK1 ON
SEKTOR1.Broj=RADNIK1.Sektor;
Primer 14
U nastavku je dat SQL upit koji vraća nazive sektora u kojima rade radnici koji se
prezivaju Petrović i Jovanović.
SELECT Naziv
FROM SEKTOR, RADNIK
WHERE Broj = Sektor AND Prezime = 'Jovanović'
UNION
SELECT Naziv
FROM SEKTOR, RADNIK
WHERE Broj = Sektor AND Prezime = 'Petrović';
![Page 15: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/15.jpg)
Primer 15
U sledećem primeru imamo SQL upit koji korišćenjem klauzule INTERSECT odreĊuje
podatke o radnicima koji rade u sektoru Administracija i koji imaju platu veću od 40000.
MS Access ne podržava klauzulu INTERSECT.
SELECT MatBr, Ime, Prezime
FROM SEKTOR, RADNIK
WHERE Broj = Sektor AND Naziv = 'Administracija'
INTERSECT
SELECT MatBr, Ime, Prezime
FROM SEKTOR, RADNIK
WHERE Broj = Sektor AND plata > 40000;
Primer 16
Ukoliko želimo da dobijemo podake o radnicima koji rade u sektoru Administracija a
plata im je manja od 40000, upit iz prethodnog primera treba modifikovati tako da se
![Page 16: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/16.jpg)
umesto klauzule INTERSECT koristi klauzula MINUS. MS Access ne podržava
klauzulu MINUS.
SELECT MatBr, Ime, Prezime
FROM SEKTOR, RADNIK
WHERE Broj = Sektor AND Naziv = 'Administracija'
MINUS
SELECT MatBr, Ime, Prezime
FROM SEKTOR, RADNIK
WHERE Broj = Sektor AND plata > 40000;
![Page 17: Naredba SELECT II - WordPress.com · SQL Programski jezik koji je projektovan za potrebe pretraživanja i upravljanja podacima u Sistemima za upravljanje relacionim bazama podataka](https://reader033.vdocuments.mx/reader033/viewer/2022041523/5e2fb663d2d96d110a25fc12/html5/thumbnails/17.jpg)
Pitanja za samostalni rad
SQL upiti
Pokušajte da rešite niz zadataka koji je dat u nastavku. Za rešavanje koristite bazu
podataka PREDUZEĆE koje je priložena uz ovaj materijal.
1. Napisati SQL upit koji za svaki broj sektora odreĊuje broj projekata za koji je on
zadužen.
2. Napisati SQL upit koji za svaki broj sektora raĉuna proseĉnu i maksimalnu platu
radnika koji rade u tom sektoru.
3. Napisati SQL upit koji za svaki tip srodstva odreĊuje broj ĉlanova porodice koji
imaju taj tip srodstva.
4. Napisati SQL upit koji odreĊuje brojeve sektora koji su zaduženi za dva i više
projekta.
5. Napisati SQL upit koji za svakog radnika prikazuje ime, prezime, pol i naziv
sektora u kome rade.
6. Napisati SQL upit koji za svaki projekat prikazuje njegov broj, naziv i broj
angažovanih radnika.
7. Modifikovati upit iz zadatka 6 tako da se prikazuju samo podaci o projektima koji
imaju više od jednog angažovanog radnika.
8. Napisati SQL upit koji prikazuje imena i prezimena radnika koji imaju više od
jednog ĉlana porodice.
9. Napisati SQL upit koji odreĊuje imena i prezimena radnika koji rade u sektoru
broj 4 i nemaju nijednog ĉlana porodice.