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 predmetima u bazi

db2 describe table predmet -- opisuje tabelu predmet

db2 "select * from predmet" -- ako smo u shemi da

db2 "select predmet.* from predmet" -- ako smo u shemi da

db2 "select * from da.predmet" -- eksplicitno navodimo shemu u kojoj se nalazi tabela

db2 "select da.predmet.* from da.predmet" -- eksplicitno navodimo shemu u kojoj se nalazi tabela

-- 2. izdvojiti sve podatke o studentima koji su rodjeni u Beogradu

db2 "select * from dosije where mestorodjenja='Beograd'"

-- 3. izdvojiti sva mesta rodjenja u nasoj bazi

db2 "select mestorodjenja from dosije" -- imamo ponavljanja mesta rodjenja

db2 "select distinct mestorodjenja from dosije" -- vise nemamo ponavljanja

-- 4. izdvojiti sve nazive predmeta koji imaju vise od 6 espb

db2 "select naziv from predmet where espb > 6"

-- 5. izdvojiti sve oznaka i nazive predmeta koji imaju izmedju 8 i 15 espb

db2 "select oznaka, naziv from predmet where espb >= 8 and espb <= 15"

db2 "select oznaka, naziv from predmet where espb between 8 and 15"

-- 6. izdvojiti sve oznake i nazive predmeta kojima broj espb nije izmedju 8 i 15

db2 "select oznaka, naziv from predmet where espb < 8 or espb > 15"

db2 "select oznaka, naziv from predmet where not (espb between 8 and 15)"

db2 "select oznaka, naziv from predmet where espb not between 8 and 15"

---------------------------------------------------------------------------
-- ako izvrsavamo naredbe iz fajla
-- db2 -tvf putanja_do_fajla
-- -t = naredbe se zavrsavaju sa ;
-- -v = verbose, ispisuje naredbe koje izvrsava
-- -f = izvrsvaj naredbu iz fajla
----------------------------------------------------------------------------

-- 7. izdvojiti sve ispitne rokove iz godina 2015/16, 2017/18, 2018/19

SELECT *
FROM ispitnirok
WHERE skgodina = 2015 OR skgodina = 2017 OR skgodina = 2018;

SELECT *
FROM ispitnirok
WHERE skgodina IN (2015, 2017, 2018);

-- 8. izdvojiti sve ispitne rokove koji nisu iz godina 2015/16, 2017/18, 2018/19

SELECT *
FROM ispitnirok
WHERE skgodina != 2015 AND skgodina != 2017 AND skgodina != 2018; -- != se nekad pise i <>

SELECT *
FROM ispitnirok
WHERE skgodina NOT IN (2015, 2017, 2018);

-- 9. izdvojiti nazive predmeta i njihove cene za samofinansirajuce studente
--    pretpostaviti da je 1 espb 2000din

SELECT naziv, espb * 2000
FROM predmet;

SELECT naziv AS naziv_predmeta, espb * 2000 AS cena_predmeta
FROM predmet;

SELECT naziv AS "Naziv Predmeta", espb * 2000 AS "Cena Predmeta"
FROM predmet;

-- AS je opciono!

SELECT naziv , 'Cena u dinarima' "pojasnjenje", espb * 2000 AS "Cena"
FROM predmet;

-- 10. Izdvojiti sve podatke o studentima cjie mesto rodjenja sadrzi slovo o

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

SELECT *
FROM dosije
WHERE mestorodjenja LIKE '%o%'

-- 11. Izdvojiti sve podatke o studentima cjie mesto rodjenja ima drugo slovo o

SELECT *
FROM dosije
WHERE mestorodjenja LIKE '_o%'

-- 12. Izdvojiti sve podatke o studentima cjie mesto rodjenja ima poslednje slovo e

SELECT *
FROM dosije
WHERE mestorodjenja LIKE '%e'

-- 12. Izdvojiti sve podatke o studentima cjie mesto rodjenja počinje sa N a završava sa d.

SELECT *
FROM dosije
WHERE mestorodjenja LIKE 'N%d'

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

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

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

-- 14.  Izdvojiti podatke o predmetima koji imaju izmedju 8 i 15 espb. Rezultat urediti
--      prema broju espb opadajuce i nazvu rastuce

SELECT *
FROM predmet
WHERE espb BETWEEN 8 AND 15
ORDER BY espb DESC, naziv ASC;

-- 15 Izdvojiti podatke o studijskim programima čija je predviđena dužina studiranja 3 
-- ili više godina. Izdvojiti oznaku i naziv studijskog programa i broj godina predviđenih 
-- za studiranje studijskog programa. Rezultat urediti prema predviđenom broju godina za 
-- studiranje i nazivu studijskog programa. 

SELECT oznaka, naziv, obimespb / 60 brgodina
FROM studijskiprogram
WHERE obimespb >= 180
ORDER BY brgodina, 2;

-- ovo nece raditi:
SELECT oznaka, naziv, obimespb / 60 brgodina
FROM studijskiprogram
WHERE brgodina >= 3
ORDER BY brgodina, 2;
-- Bitan je redosled izvrsavanja stvari u sql 
