Untitled
unknown
mysql
3 years ago
5.4 kB
128
Indexable
PRIPREMA 1. Prikazati imena zaposlenih koji rade na istim projektima kao Andrija. SELECT ime FROM radnik, ucesce WHERE radnik.id_radnika = ucesce.id_radnika and id_projekta IN (SELECT id_projekta FROM radnik, ucesce WHERE radnik.id_radnika = ucesce.id_radnika and ime = "Andrija") 2. Prikazati prosečna primanja zaposlenih po odeljenjima, samo za odeljenja u kojima je prosek veći od 2800. SELECT id_odeljenja, AVG(plata+ifnull(premija,0)) as "Prosecna primanja" FROM radnik GROUP BY id_odeljenja HAVING AVG(plata+ifnull(premija,0)) > 2800 3. Prikazati imena projekata i broj zaposlenih angažovanih na njima, za projekte na kojima je angažovano između 1 i 3 zaposlenih (uključujući i te vrednosti). SELECT ime_proj, COUNT(id_radnika) FROM ucesce, projekat WHERE ucesce.id_projekta = projekat.id_projekta GROUP BY ucesce.id_projekta HAVING COUNT(id_radnika) between 1 and 3 4. Prikazati sve podatke o odeljenjima u kojima ima zaposlenih radnika. SELECT odeljenje.* FROM odeljenje WHERE id_odeljenja IN (SELECT id_odeljenja FROM radnik) 5. Prikazati imena zaposlenih i njihova ukupna primanja za zaposlene čija su ukupna primanja manja od 2000 ili veća od 3000, ime im počinje slovom ‘M’ ili ‘P’, a zaposleni su u odeljenju Plan. Rezultate urediti po ukupnim primanjima u rastućem redosledu. SELECT ime, plata+ifnull(premija,0) as "Primanja" FROM radnik, odeljenje WHERE radnik.id_odeljenja = odeljenje.id_odeljenja and ime_od = "Plan" and (ime like "M%" OR ime like "P%") ORDER BY plata+ifnull(premija,0) 6. Prikazati projekte na kojima radi Vanjin šef. SELECT ucesce.* FROM projekat, ucesce WHERE projekat.id_projekta = ucesce.id_projekta and id_radnika = (SELECT sef_odeljenja FROM radnik, odeljenje WHERE radnik.id_odeljenja = odeljenje.id_odeljenja and ime = "Vanja") 7. Prikazati imena i poslove radnika, kao i broj i imena projekata na kojima rade, uključujući i radnike koji ne rade ni na jednom projektu. SELECT ime, posao, ucesce.id_projekta, ime_proj FROM radnik left join ucesce on radnik.id_radnika = ucesce.id_radnika left join projekat on ucesce.id_projekta = projekat.id_projekta 8. Zaposlenima čija je kvalifikacija KV ukinuti angažovanje na projektima na kojima imaju funkciju izvršioca. Povećati sredstva 10% za projekte na kojima radi Pavle. DELETE FROM ucesce WHERE funkcija = "Izvrsioc" and id_radnika in (SELECT id_radnika FROM radnik WHERE kvalif = "KV") UPDATE projekat SET sredstva = sredstva * 1.1 WHERE id_projekta IN (SELECT id_projekta FROM ucesce, radnik WHERE ucesce.id_radnika = radnik.id_radnika and ime = "Pavle") 9. Dodati podatke o novom radniku Milan Milananoviću koji nema rukovodioca, ima platu od 33000 i premiju 5000. Ostali podaci nisu poznati. INSERT INTO radnik(id_radnika, ime, prezime, plata, premija) VALUES(1234,"Milan","Milovanovic","3300","5000") 10. U već postojeću tabelu KVALIFIKACIJA, čiji su atributi IDBR, IME, POSAO, PLATA i PREMIJA dodati dodati podatke o radnicima koji imaju kvalifikaciju VKV ili KV. INSERT INTO kvalifikacija SELECT id_radnika, ime, posao, plata, premija FROM radnik WHERE kvalif IN ("VKV","KV") 11. Kreirati pogled (VIEW) koji prikazuje ime zaposlenog, datum zaposlenja, platu i mesto u kome radi za zaposlene čija je kvalifikacija VKV ili ne primaju premiju. Rezultate urediti po plati u rastućem redosledu. CREATE VIEW View_Zaposleni as SELECT ime, dat_zap, plata, mesto FROM radnik, odeljenje WHERE radnik.id_odeljenja = odeljenje.id_odeljenja and (kvalif = "VKV" OR premija is null OR premija = 0) ORDER BY plata 12. Prikazati ime, prezime, smer studenta koji su u školskoj 2019/20. godini birali predmet Baze podataka. SELECT ime, prezime, smer FROM student, predmet, student_predmet WHERE student_predmet.id_predmeta = predmet.id_predmeta and student_predmet.id_studenta = student.id_studenta and skolska_godina = "2019/20" and naziv = "Baze podataka" 13. Prikazati prosečne ocene po predmetima u januarskom ispitnom roku šk.2018/19 SELECT predmet.naziv, AVG(ocena) FROM predmet, zapisnik, ispitni_rok, ispit WHERE predmet.id_predmeta = ispit.id_predmeta and ispit.id_roka = ispitni_rok.id_roka and ispit.id_ispita = zapisnik.id_ispita and ispitni_rok.naziv = "Januar" and skolska_god = "2018/19" GROUP BY predmet.naziv 14. U školskoj 2018/19. godini, za studenta Lazara Markovića zameniti predmet Veb dizajn sa predmetom Baze podataka. UPDATE student_predmet SET id_predmeta = (SELECT id_predmeta FROM predmet WHERE naziv = "Baze podataka") WHERE skolska_godina = "2018/19" and id_studenta = (SELECT id_studenta FROM student WHERE ime = "Lazar" and prezime = "Markovic") and id_predmeta = (SELECT id_predmeta FROM predmet WHERE naziv = "Veb dizajn") 15. Kreirati funkciju fun_prosek koja vraća prosečnu ocenu na osnovu unetog naziva i datuma održavanja ispita. DELIMITER $$ CREATE FUNCTION fun_prosek(ime char(40), datumIspita date) returns float begin declare prosek float; SELECT AVG(ocena) into prosek FROM zapisnik, predmet, ispit WHERE ispit.ID_PREDMETA = predmet.ID_PREDMETA and ispit.ID_ISPITA = zapisnik.ID_ISPITA and predmet.naziv = ime and datum = datumIspita; return prosek; end$$ DELIMITER ; SELECT fun_prosek("Objektno programiranje 1", "2019-02-18")
Editor is loading...