db2start -- pokretanje SUBP

db2 connect to stud2020 user student using abcdef -- povezivanje na bazu stud2020

db2 set schema da -- postavi shemu na da

-- 1. izdvoijiti informacije o svim studentima u bazi

db2 describe table dosije -- opisuje tabelu dosije

db2 "select indeks, idprogram, ime, prezime, pol, mestorodjenja, idstatus, datupisa, datdiplomiranja from da.dosije"

db2 "select * from da.dosije"

-- 2. izdvojiti sve brojeve indeksa studenata koji su polagali neki ispit

db2 "select indeks from da.ispit" -- ~100k redova(imamo ponavljanje indeksa)

db2 "select distinct indeks from da.ispit" -- 2733 rezultata (svaki indeks se pojvaljuje tacno jednom)

-- 3. izdvojiti sve parove oznaka roka, ocena iz tabele ispit

db2 "select distinct oznakaroka, ocena from da.ispit" -- distinct lepo radi i sa vise kolona

-- 4. izdvojiti sve predmete koji nose bar 6 espb

db2 "select id from da.predmet where espb >= 6"

-- 5. izdvojiti sva uspesna polganja ispita u septembru 4 2019. skolske godine

db2 "select * from da.ispit where ocena > 5 and oznakaroka = 'sep4' and skgodina = 2019"

-- 6. izdvojiti indeks i datum upisa studenata ciji je indeks veci od 20140000 rezultat
--    urediti prema datumu upisa opadajuce

db2 "select indeks, datupisa from dosije where indeks > 20140000 order by datupisa desc"

-- 7. izdvojiti sve informacije o polaganjima ispita rezultat urediti po indeksu rastuce
--    i po datumu polaganja opadajuce

db2 "select * from ispit order by indeks asc, datpolaganja desc"

-- 8. izdvojiti sve predmete kojima je broj espb izmedju 4 i 6

db2 "select * from predmet where epsb >= 4 and espb <= 6"

db2 "select * from predmet where espb between 4 and 6"

-- 9. izdvojiti sve predmete kojima broj predmeta nije izmedju 4 i 6

db2 "select * from predmet where espb < 4 or espb > 6"

db2 "select * from predmet where not (espb between 4 and 6)"

db2 "select * from predmet where espb not between 4 and 6"

-- 10. izdvojiti sva polaganja ispita na kojima je student dobio neparnu ocenu

db2 "select * from ispit where ocena % 2 = 1"

db2 "select * from ispit where ocena = 5 or ocena = 7 or ocena = 9"

db2 "select * from ispit where ocena in (5, 7, 9)"

-- 11. izdvojiti indeks, ocenu, broj bodova kao i ocenu sracunatu preko broja 
--     bodova za sva uspesna polaganja ispita

db2 "select indeks, ocena, poeni, (poeni - 1) / 10 + 1 from ispit where ocena > 5"

db2 "select indeks, ocena, poeni, (poeni - 1) / 10 + 1 as ocena_po_bodovima from ispit where ocena > 5"

--------------------------------------------------------------------------------
-- ako upite pisemo u tekstualnom editoru upite pokrecemo na sledeci nacin:
-- db2 -tvf putanja_do_fajla
-- -t = naredbe su terminirane sa ;
-- -v = verbose (ispisuje naredbu koju izvrsava)
-- -f = izvrsava naredbe iz fajla
--------------------------------------------------------------------------------

SELECT indeks, ocena, poeni (poeni - 1) / 10 + 1 as "OCENA PO BODOVIMA"
FROM ispit
WHERE ocena > 5;

-- 12. izdvojiti sva polaganja na kojima je student dobio ocenu 8

SELECT indeks, ocena, idpredmeta
FROM ispit
WHERE ocena = 8 AND status = 'o';

-- 13. izdvojiti sve predmete sa nazivom Linearna algebra

SELECT *
FROM predmet
WHERE naziv='Linearna algebra';

-- 14. izdvojiti sve predmete koji u svom imenu imaju slovo a

SELECT *
FROM predmet
WHERE naziv LIKE '%a%';

-- _ <=> .  (bilo koji karakter)
-- % <=> .* (0 ili vise karaktera)

-- 15. izdvojiti imena i prezimena studenata kojima ime ima bar 5 karaktera
--     i pocinje na slovo M

SELECT ime, prezime
FROM predmet
WHERE ime LIKE 'M____%';

-- 16. izdvojiti nazive predmeta cije je drugo slovo %, a pretposlednje \

SELECT naziv
FROM predmet
WHERE naziv LIKE '_\%%\\_';

SELECT naziv
FROM predmet
WHERE naziv LIKE '_^%%\_' ESCAPE ^;

-- 17. izdvojiti sve studente za koje nije poznat datum diplomiranja

SELECT *
FROM dosije
WHERE datdiplomiranja IS NULL;

-- 18.  navesti korisnika koji trenutno koristi bazu podataka

VALUES user;

-- 19. navesti trenutno vreme i trenutni timestamp

VALUES (current time, current timestamp);
