1 Vježba 2: (SQL Server) Rješenja: Koristiti funkcije: - FESB

1 Vježba 2: (SQL Server) Rješenja: Koristiti funkcije: - FESB 1 Vježba 2: (SQL Server) Rješenja: Koristiti funkcije: - FESB

13.07.2015 Views

Fakultet elektrotehnike, strojarstva i brodogradnje BAZE PODATAKA 2DATEADDFunkcija vraća datumkoji se dobije kada se nazadani datum dodaodređeni vremenskiinterval.DATEADD(datepart,number, date)datepart - parametar kojim se određuje na koji diodatuma se želi dodati odgovarajući iznos.Za vrijednost ovog argumenta navodi seneka od konstanti: year, month, day, week.number - iznos koji se dodaje, cjelobrojan podatakdate - datum koji se mijenja, odnosno kojem se želidodati određena vrijednost. Mora biti tipa datetimeili smalldatetime.Rješenja:1.a)SELECT STUDENT.PREZIME, STUDENT.IME, STUDENT.dat_rodenja,YEAR(STUDENT.dat_rodenja) as YEAR,MONTH(STUDENT.dat_rodenja) as MONTH,DAY(STUDENT.dat_rodenja) as DAYFROM STUDENT1.b)SELECT PREZIME, IME , DAT_UPISA,DATEADD(YEAR,7, DAT_UPISA) as ‘Datum isteka’FROM STUDENTWHERE DATEADD(YEAR,7, DAT_UPISA) < GETDATE()IliSELECT PREZIME, IME , DAT_UPISA,DAT_ISTEKA=DATEADD(YEAR,7, DAT_UPISA)FROM STUDENTWHERE DATEDIFF(YEAR, DAT_UPISA, GETDATE()) >= 72.a)SELECT STUDENT.PREZIME, STUDENT.IME, STUDENT.dat_rodenja, tren_status_imeFROM STUDENT join tren_status on STUDENT.tren_status_id = tren_status.tren_status_id2.b)SELECT STUDENT.PREZIME, STUDENT.IME, STUDENT.dat_rodenja,case when STUDENT.tren_status_id = 1 then 'Studira'else 'Ne studira'endFROM STUDENT join tren_status on STUDENT.tren_status_id = tren_status.tren_status_id3.b)select predmet.PREDMET_ID, IME_PREDMETA , avg(ocjena)from predmet join upisuje on predmet.predmet_id = upisuje.predmet_idwhere dat_polaganja between '2005-01-01' and '2005-12-31'group by predmet.PREDMET_ID, IME_PREDMETA3.c)select prezime, ime, tren_status_ime, ISNULL(jmbg, 'NN'),CASE WHEN MONTH(dat_upisa) = 9 then 'Redovno upisan'ELSE 'Naknadno upisan'ENDfrom student join tren_status on student.tren_status_id = tren_status.tren_status_id4.a)Select prezime + ' ' + imefrom student join upisni_list on student.student_id = upisni_list.student_idwhere ind_upisa_id = 2and sk_god = '2005/06'4.b)select prezime + ' ' + ime, ime_predmeta, ocjena, semfrom student join upisni_list on student.student_id = upisni_list.student_idjoin upisuje on upisni_list.ulist_id = upisuje.ulist_idjoin predmet on upisuje.predmet_id = predmet.predmet_idwhere ind_upisa_id = 2and sk_god = '2005/06'422.11.2010

Fakultet elektrotehnike, strojarstva i brodogradnje BAZE PODATAKA 2Vježba 4:(SQL Server)1.a) Ispisati šifru i naziv svih mjesta koja nemaju poštanski broj.b) Ispisati naziv i šifru svih obrazovnih programa kojima šifra započinje brojem 7(koristiti naredbu BETWEEN).c) Ispisati podatke o studentu (koristiti funkciju CONVERT, Dodatak 1.) u obliku:d) Ispisati sve predmete koji započinju sa riječi 'Programiranje'.e) Ispisati predmete koji se ne nalaze u tablici nastavnih planova.2.a) Napisati SELECT naredbu koja pronalazi sve predmete koji pripadaju ispitnoj grupi 1 ili 6.b) Proširiti SELECT pod a) tako da daje rezultat kao u tablici. Pretpostavka je da se predmeti ispitnegrupe 1 i 6 polažu ponedjeljkom, 2 i 7 utorkom itd. (koristiti naredbu CASE, Dodatak 3.)c) Kreirati VIEW STUD_PRED nad tablicama STUDENT, UPISNI_LIST,UPISUJE i PREDMET koji se sastoji od naziva predmeta, imena,prezimena i mat. broja studenta te školske godine i semestra kada jepredmet upisan.Napraviti upit koji iz kreiranog view-a vraća sve podatke za predmet'Baze podataka'.Pogled se definira sa:CREATE VIEW ime ASSELECT ...select query3.a) Napisati SELECT naredbu koja vraća prezime i ime studenta, matični broj, ocjenu i naziv predmeta,i to samo za studente koji su položili pojedini predmet. Rezultat upita sortirati po matičnom broju.b) Na osnovu a) napraviti novu naredbu koja vraća prosjek ocjena (2 decimale) za pojedinog studenta.Napomena za b):- ne treba koristiti tablicu PREDMET,- za prosjek ocjena koristiti agregatnu funkciju AVG(),- kako je ocjena tipa integer to će i prosjek biti integer te treba koristiti CONVERT,- agregatne funkcije se koriste uz naredbu GROUP BY.4. Navedena je SELECT naredba kojom se mogu dobiti rezultati pretraživanja tablica STUDENT i MJESTOpovezanih sa dvije veze (dva relationship-a) preko alias naziva za tablicu MJESTO, te rezultat tog selekta:SELECT ime, prezime, mjesto_rod, M_ROD.ime_mjesta, mjesto_stan, M_STAN.ime_mjestaFROM STUDENT JOIN MJESTO M_ROD ON STUDENT.mjesto_rod = M_ROD.mjesto_idJOIN MJESTO M_STAN ON STUDENT.mjesto_stan = M_STAN.mjesto_idorder by prezime522.11.2010

Fakultet elektrotehnike, strojarstva i brodogradnje BAZE PODATAKA 2Vježba 4:(<strong>SQL</strong> <strong>Server</strong>)1.a) Ispisati šifru i naziv svih mjesta koja nemaju poštanski broj.b) Ispisati naziv i šifru svih obrazovnih programa kojima šifra započinje brojem 7(koristiti naredbu BETWEEN).c) Ispisati podatke o studentu (koristiti funkciju CONVERT, Dodatak 1.) u obliku:d) Ispisati sve predmete koji započinju sa riječi 'Programiranje'.e) Ispisati predmete koji se ne nalaze u tablici nastavnih planova.2.a) Napisati SELECT naredbu koja pronalazi sve predmete koji pripadaju ispitnoj grupi 1 ili 6.b) Proširiti SELECT pod a) tako da daje rezultat kao u tablici. Pretpostavka je da se predmeti ispitnegrupe 1 i 6 polažu ponedjeljkom, 2 i 7 utorkom itd. (koristiti naredbu CASE, Dodatak 3.)c) Kreirati VIEW STUD_PRED nad tablicama STUDENT, UPISNI_LIST,UPISUJE i PREDMET koji se sastoji od naziva predmeta, imena,prezimena i mat. broja studenta te školske godine i semestra kada jepredmet upisan.Napraviti upit koji iz kreiranog view-a vraća sve podatke za predmet'Baze podataka'.Pogled se definira sa:CREATE VIEW ime ASSELECT ...select query3.a) Napisati SELECT naredbu koja vraća prezime i ime studenta, matični broj, ocjenu i naziv predmeta,i to samo za studente koji su položili pojedini predmet. Rezultat upita sortirati po matičnom broju.b) Na osnovu a) napraviti novu naredbu koja vraća prosjek ocjena (2 decimale) za pojedinog studenta.Napomena za b):- ne treba koristiti tablicu PREDMET,- za prosjek ocjena koristiti agregatnu funkciju AVG(),- kako je ocjena tipa integer to će i prosjek biti integer te treba koristiti CONVERT,- agregatne <strong>funkcije</strong> se koriste uz naredbu GROUP BY.4. Navedena je SELECT naredba kojom se mogu dobiti rezultati pretraživanja tablica STUDENT i MJESTOpovezanih sa dvije veze (dva relationship-a) preko alias naziva za tablicu MJESTO, te rezultat tog selekta:SELECT ime, prezime, mjesto_rod, M_ROD.ime_mjesta, mjesto_stan, M_STAN.ime_mjestaFROM STUDENT JOIN MJESTO M_ROD ON STUDENT.mjesto_rod = M_ROD.mjesto_idJOIN MJESTO M_STAN ON STUDENT.mjesto_stan = M_STAN.mjesto_idorder by prezime522.11.2010

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!