-- POGLEDI -- -- 1. napraviti pogled sa ispitnim rokovima gde je skgodina >= 2018 CREATE VIEW ispitni_rok_2018 AS SELECT skgodina, oznakaroka, naziv, datpocetka, datkraja FROM ispitnirok WHERE skgodina >= 2018; SELECT * FROM ispitni_rok_2018; INSERT INTO ispitni_rok_2018(skgodina, oznakaroka, naziv, datpocetka, datkraja) VALUES (2018, 'test', 'test 2018', '04/04/2018', '10/04/2018'); INSERT INTO ispitni_rok_2018(skgodina, oznakaroka, naziv, datpocetka, datkraja) VALUES (2018, 'test1', 'test1 2018', '04/05/2018', '10/05/2018'); INSERT INTO ispitni_rok_2018(skgodina, oznakaroka, naziv, datpocetka, datkraja) VALUES (2018, 'test2', 'test2 2018', '04/06/2018', '10/06/2018'); INSERT INTO ispitni_rok_2018(skgodina, oznakaroka, naziv, datpocetka, datkraja) VALUES (2019, 'test', 'test 2019', '04/04/2019', '10/04/2019'); SELECT * FROM ispitnirok WHERE oznakaroka LIKE 'test%'; SELECT * FROM ispitni_rok_2018 WHERE oznakaroka LIKE 'test%'; INSERT INTO ispitni_rok_2018(skgodina, oznakaroka, naziv, datpocetka, datkraja) VALUES (2017, 'test', 'test 2017', '04/04/2017', '10/04/2017'); UPDATE ispitni_rok_2018 SET naziv = 'TEST 2018' WHERE oznakaroka = 'test' AND skgodina = '2018'; UPDATE ispitni_rok_2018 SET skgodina = 2016 WHERE naziv = 'TEST 2018'; CREATE VIEW ispitni_rok_test AS SELECT skgodina, oznakaroka, naziv, datpocetka, datkraja FROM ispitni_rok_2018 WHERE oznakaroka LIKE 'test%' WITH CHECK OPTION; INSERT INTO ispitni_rok_test VALUES (2018, '_test2', 'test2 2018', '04/06/2018', '10/06/2018'); SELECT * FROM ispitnirok WHERE oznakaroka LIKE '%test%'; SELECT * FROM ispitni_rok_2018 WHERE oznakaroka LIKE '%test%'; SELECT * FROM ispitni_rok_test; INSERT INTO ispitni_rok_test VALUES (2017, 'test2', 'test2 2017', '04/06/2017', '10/06/2017'); DELETE FROM ispitnirok WHERE oznakaroka LIKE '%test%'; DROP VIEW ispitni_rok_test; DROP VIEW ispitni_rok_2018; CREATE VIEW proseci_u_rok AS SELECT skgodina, oznakaroka, AVG(ocena + 0.0) ocena FROM ispit i WHERE ocena > 5 AND status = 'o' GROUP BY skgodina, oznakaroka; CREATE VIEW AS SELECT ___ FROM dosije d JOIN ispit i ON d.indeks = i.indeks; SELECT * FROM proseci_u_rok; -- 2. kreirati pogled kojim se izdvajaju sva polaganja studenata -- koji se zovu Marko ili Maja i koji su u junskom roku 2018. -- polozili bar jedan predmet. CREATE OR REPLACE VIEW polganja_marko_maja_2018 AS SELECT DISTINCT i.* FROM dosije d JOIN ispit i ON d.indeks = i.indeks JOIN ispit i1 ON d.indeks = i1.indeks WHERE d.ime IN ('Marko', 'Maja') AND i1.skgodina = 2018 AND i1.oznakaroka = 'jun1' AND i1.ocena > 5 AND i1.status = 'o'; SELECT * FROM polganja_marko_maja_2018; CREATE OR REPLACE VIEW polganja_marko_maja_2018 AS SELECT * FROM ispit i WHERE i.indeks IN (SELECT indeks FROM dosije WHERE ime IN ('Marko', 'Maja')) AND i.indeks IN (SELECT DISTINCT indeks FROM ispit WHERE skgodina = 2018 AND oznakaroka = 'jun1' AND ocena > 5 AND status = 'o'); --------------- --- INDEKS ---- 'fensi pokazivaci' ---------------- -- B - stablo -- ---------------- -- napraviti indeks na tabeli dosije po imenu i prezimenu opadajuce CREATE INDEX dosije_ime_prezime ON dosije (ime DESC, prezime DESC); CREATE UNIQUE INDEX dosije_ime_prezime2 ON dosije (ime DESC, prezime DESC); DROP INDEX dosije_ime_prezime; --------------------------------------- -- 1. ZA studenta Osnovnih akadmeskih studija matematika -- koji su upisani 2018. godine, pronaci koji su --- obavezni -- predmeti ostali do kraja studeija -- izdovjiti indeks, ime, prezime kao i naziv -- obaveznog nepolozenog predmeta -- student je upisan 2018 <=> indeks ~ 2018****; SELECT d.indeks, d.ime, d.prezime, p.naziv FROM dosije d JOIN studijskiprogram sp ON d.idprograma = sp.id JOIN predmetprograma pp ON d.idprograma = pp.idprograma JOIN predmet p ON pp.idpredmeta = p.id JOIN nivokvalifikacije nk ON sp.idnivoa = nk.id WHERE pp.vrsta = 'obavezan' AND char(d.indeks) LIKE '2018%' AND sp.naziv = 'Matematika' AND nk.naziv = 'Osnovne akademske studije' AND NOT EXISTS(SELECT * FROM ispit i WHERE i.indeks = d.indeks AND i.ocena > 5 AND i.status = 'o' AND i.idpredmeta = p.id); SELECT * FROM studijskiprogram SELECT char(indeks) FROM dosije WHERE char(indeks) LIKE '2018%'; SELECT * FROM nivokvalifikacije