Z3-Rešenja

Table of Contents

  1. Primer 1
  2. Primer 2
  3. Primer 3
  4. Primer 4
  5. Primer 5
  6. Primer 6
  7. Primer 7
  8. Primer 8
  9. Primer 9
  10. Primer 10
  11. Primer 11
  12. Primer 12
  13. Primer 13
  14. Primer 14
  15. Primer 15
  16. Primer 16
  17. Primer 17
  18. Primer 18
  19. Primer 19

Primer 1

Prikazati podatke o svim predmetima.

select * from predmet;

Primer 2

Prikazati podatke o svim studentima rođenim u Beogradu.

select * from dosije where mesto_rodjenja='Beograd';

Primer 3

Izdvojiti gradove u kojima su rođeni studenti.

select mesto_rodjenja from dosije;

-- Izlistaće i duplikate... Da bismo to izbegli, koristimo distinct.
select distinct mesto_rodjenja from dosije;

Primer 4

Izdvojiti nazive predmeta koji imaju više od 6 bodova.

select naziv from predmet where bodovi>6;

Primer 5

Izdvojiti šifre i nazive predmeta koji imaju između 8 i 15 bodova.

select sifra, naziv from predmet where bodovi between 8 and 15;

Primer 6

Izdvojiti imena i prezimena studenata koji su rođeni 1989, 1992 ili 1988 godine.

select ime, prezime from dosije where god_rodjenja=1989 or god_rodjenja=1992 or god_rodjenja=1998;

-- Ili, korišćenjem predikata IN:
select ime, prezime from dosije where god_rodjenja in (1989, 1992, 1998);

Primer 7

Izdvojiti imena i prezimena studenata koji nisu rođeni 1989, 1992 ili 1988 godine.

select ime, prezime from dosije where god_rodjenja not in (1989, 1992, 1998);

--Ili
select ime, prezime from dosije where not god_rodjenja in (1989, 1992, 1998);

Primer 8

Izdvojiti nazive predmeta i njihovu cenu za samofinansirajuće studente izraženu u dinarima. Jedan bod košta 1500 dinara.

select naziv, bodovi*1500 CENA from predmet; 

select naziv, bodovi*1500 as CENA from predmet;

Primer 9

Izdvojiti nazive predmeta i njihovu cenu za samofinansirajuće studente izraženu u dinarima. Jedan bod košta 1500 dinara. Između kolone naziv i kolone cena dodati kolonu u kojoj će za svaku vrstu biti ispisano Cena u dinarima.

select naziv, 'Cena u dinarima', bodovi*1500 from predmet;

Primer 10

Prikazati podatke o studentima koji su rođeni u mestu čiji naziv:

-- sadrži malo slovo o;
select * from dosije where mesto_rodjenja like '%o%';

-- sadrži o kao drugo slovo;
select * from dosije where mesto_rodjenja like '_o%';

-- se završava sa e;
select * from dosije where mesto_rodjenja like '%o';

-- počinje sa N a završava sa d.
select * from dosije where mesto_rodjenja like 'N%d';

Primer 11

Prikazati podatke o predmetima. Rezultat urediti po bodovima

-- u rastućem poretku;
select * from predmet order by bodovi;
select * from predmet order by bodovi asc;

-- u opadajućem poretku;
select * from predmet order by bodovi desc;

--u rastućem poretku i po nazivu u opadajućem poretku.
select * from predmet order by bodovi asc, naziv desc;

Primer 12

Prikazati ime, prezime i godinu rođenja studenata koji su rođeni između 1987. i 1992. godine i urediti rezultat prema prezimenu studenta.

select ime, prezime, god_rodjenja from dosije
where god_rodjenja between 1987 and 1992 order by prezime;

Primer 13

Prikazati naziv ispitnog roka koji je održan između 2008. i 2011. godine i koji u oznaci sadrži slovo p. Rezultat urediti prema nazivu u opadajućem poretku.

select naziv
from ispitni_rok
where godina_roka between 2008 and 2011 and oznaka_roka like '%p%' order by naziv desc;

Primer 14

Prikazati podatke o ispitima čiji je datum nepoznat.

select * from ispit where datum_ispita is null;

Primer 15

Prikazati podatke o studentima i ispitima.

select * from dosije d join ispit i on d.indeks = i.indeks;

Primer 16

Prikazati podatke o studentima i njihovim ispitima koji su održani 4.3.2011. Izdvojiti indeks, ime i prezime studenta, id predmeta i ocenu.

select i.indeks, ime, prezime, id_predmeta, ocena 
from dosije d join ispit i on d.indeks = i.indeks 
where datum_ispita='04/03/2011';

Primer 17

Prikazati nazive predmeta koje je polagao neki student u januarskom ispitnom roku 2011. godine.

select naziv
from predmet p join ispit i on i.id_predmeta=p.id_predmeta 
where godina_roka=2011 and oznaka_roka='jan';

Primer 18

Za svakog studenta izdvojiti predmete koje je položio. Prikazati indeks, ime i prezime studenta, naziv predmeta i ocenu.

select i.indeks, ime, prezime, naziv, ocena
from dosije d join ispit i on d.indeks=i.indeks 
join predmet p on p.id_predmeta=i.id_predmeta
where ocena>5;

Primer 19

Izdvojiti podatke o studentima i ispitnim rokovima za koje važi da je student rođen godine kada je održan ispitni rok.

select *
from dosije d 
join ispitni_rok ir on d.god_rodjenja=ir.godina_roka;