Untitled
unknown
mysql
4 years ago
5.4 kB
130
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...