-- INSERT 

-- INSERT INTO ime_tabele (...)
-- podaci

-- 1. Dodati ispitni rok Oktobar 2 2015
SELECT * FROM ispitnirok
WHERE skgodina = 2015;
INSERT INTO ispitnirok
VALUES (2015, 'okt2', 'Oktobar2 2015', '01.10.2016', '07.10.2016');

-- 2.dodatmo studenta Ivana Markovica sa brojem indeks 20140055
-- rodjen u Beogradu, datdipl i pol budu nepoznati.

SELECT * FROM dosije;

SELECT distinct idstatusa FROM dosije;

SELECT distinct idprograma FROM dosije;

INSERT INTO dosije
VALUES (20140055, 101, 'Ivan', 'Markovic', NULL, 'Beograd', 1, '10.06.2014', NULL);

INSERT INTO dosije (indeks, ime, prezime, pol, mestorodjenja, idprograma, idstatusa, datupisa, datdiplomiranja)
VALUES (20140055, 'Ivan', 'Markovic', NULL, 'Beograd', 101, 1, '10.06.2014', NULL);

INSERT INTO dosije (indeks, ime, prezime, mestorodjenja, idprograma, idstatusa, datupisa)
VALUES (20140055, 'Ivan', 'Markovic',  'Beograd', 101, 1, '10.06.2014');


SELECT * FROM dosije WHERE indeks = 20140055;
delete from dosije where indeks = 20140055;

-- dodati ANALIZA 3 u oktobru 2 do15 neuspesno polagane

SELECT * FROM ispit;

SELECT * FROM upisankurs
WHERE idpredmeta IN (SELECT id FROM predmet WHERE naziv='Analiza 3');

INSERT INTO upisankurs(indeks, skgodina, semestar, idpredmeta)
SELECT 20140055, 2015, 2, p.id
FROM predmet p
WHERE p.naziv = 'Analiza 3';

INSERT INTO ispit (skgodina, oznakaroka, indeks, idpredmeta, status, ocena)
SELECT 2015, 'okt2', 20140055, p.id, 'o', 5
FROM predmet p
WHERE p.naziv = 'Analiza 3';

SELECT *
FROM ispit
WHERE indeks = 20140055;

-- hocemo da dodamo analizu2 u okt2 2015 bodvi=74 ocena 8
INSERT INTO ispit (skgodina, oznakaroka, indeks, idpredmeta, status, poeni, ocena)
VALUES (2015, 'okt2', 20140055, 2357, 'o', 74, 8);

SELECT * FROM predmet
WHERE naziv = 'Analiza 2';

SELECT * FROM dosije WHERE indeks = 20140055;

SELECT * FROM studijskiprogram WHERE id=101;


-- hocemo da dodamo analizu2 u okt2 2015 bodvi=74 ocena 8
DELETE FROM ispit
WHERE indeks = 20140055;

INSERT INTO ispit (skgodina, oznakaroka, indeks, idpredmeta, status, poeni, ocena)
VALUES (2015, 'okt2', 20140055, 2357, 'o', 74, 20);

INSERT INTO upisankurs(indeks, skgodina, semestar, idpredmeta)
VALUES (20140055, 2015, 1 , 2357);

-- 3. Dodati studenta sa brojem indeks 20140074 koji je po svemu isti kao student sa brojem indeksa
-- 20150174
INSERT INTO dosije
SELECT 20140074, 'Milan', prezime, pol, mestorodjenja, idstatus, datupisa, datdiplomiranja
FROM dosije
WHERE indeks = 20150174;


-- DELETE
-- DELETE FROM ime_tabele
-- WHERE klasican_uslov_u_sql
DELETE FROM ispit
WHERE indeks = 20140055;

DELETE FROM upisankurs
WHERE indeks = 20140055;

DELETE FROM dosije
WHERE indeks = 20140055;

DELETE FROM ispit;

SELECT * FROM ispit;

-- 4. izbrisati sva polaganja predmeta Analiza 3;

DELETE FROM ispit
WHERE idpredmeta IN ( SELECT p.idPredmeta
					FROM predmet p
					WHERE p.naziv='Analiza 3');
		
SELECT COUNT(*) FROM ispit;

-- 5 Obrisemo sve studente koji nisu polagali ni jedan ispit
DELETE FROM dosije
WHERE indeks NOT IN (SELECT DISTINCT i.indeks FROM ispit i);

-- UPDATE
--UPDATE tabela
--SET sta menjamo
--WHERE podskup nad kojim radimi

-- 6. predmetu Uvod u filozofiju postaviti espb na 20

SELECT *
FROM predmet
WHERE naziv='Uvod u filozofiju';

UPDATE predmet
SET espb=20
WHERE naziv='Uvod u filozofiju';


-- 7. Studentu Luki Blagicu promeniti mesto rodjenja na nepoznato a godinu upisa na 2011.

SELECT * FROM dosije WHERE ime = 'Luka' AND prezime = 'Blagic';


UPDATE dosije
SET mestorodjenja=NULL,
	datupisa=datupisa + (2011 - YEAR(datupisa)) YEARS
WHERE ime = 'Luka' AND prezime = 'Blagic';



-- 8. duplirati broj bodova svim predmetima - nece moci
-- 	povecati za 5
UPDATE predmet
SET espb=espb*2;

UPDATE predmet
SET espb = espb + 5;

SELECT espb FROM predmet;

UPDATE predmet
SET espb = espb - 5;

--9 sve padove programiranja 1 prebaciti na polaganja sa ocenom 6
--
UPDATE ispit
SET ocena=6
WHERE idpredmeta IN (SELECT id FROM predmet WHERE naziv='Programiranje 1')
	AND ocena = 5 AND status = 'o';

--ZA sva polaganja ispita u roku okkt2 2015 promenimo datum polaganja na datum poslednjeg
--polaganog ispit i ocenu na 10
UPDATE ispit
SET (datpolaganja, ocena) = (SELECT MAX(datpolaganja), 10 FROM ispit)
WHERE skgodina=2015 AND oznakaroka='okt2';

SELECT *
FROM ispit
WHERE skgodina = 2015 AND oznakaroka='okt2';

-- 6 Promenimo broj indeksa studenta sa indeksom 20140055 u 20140056

-- moramo prvo srediti sve reference sto mozemo uraditi tako sto
-- unesemo kopiju informacija za "novog" studenta i nakon toga obrisemo
-- za starog studenta
-- u praksi ovakav posao realizujemo preko okidaca(triggera)

INSERT INTO dosije
SELECT 20140056, idprograma, ime, prezime, pol, mestorodjenja, idstatusa, datupisa, datdiplomiranja
FROM dosije
WHERE indeks=20140055;

INSERT INTO upisankurs
SELECT 20140056, ...
FROM upisankurs
WHERE indeks=20140055;

UPDATE ispit ...


SELECT * FROM dosije;

UPDATE dosije
SET indeks=20140056
WHERE indeks=20140055;

UPDATE upisankurs
SET indeks=20140056
WHERE indeks=20140055;


