Za potrebe vežbi koristićemo bazu DVD_KOLEKCIJA :

     Desni klik i sačuvajte fajl za kreitanje i popunjavanje baze  KreirajBazuDvdKolekcija.sql

Otvorite ovaj sql fajl i izvršite upit (Sql Server Management Studio)

Dalje radimo upite nad tabelama u ovoj bazi

use DVD_KOLEKCIJA;

U nastavku su upiti koji su rađeni u učionici, prva grupa:

Ispisati nazive svih filmova (u tabeli Film)

SELECT Naziv
FROM Film;

Ispisati nazive svih filmova koji su kraći od 2 sata

SELECT Naziv 
FROM Film
WHERE Trajanje < '02:00:00';

Ispisati nazive svih filmova kojima naziv počinje na slovo 'A'

SELECT Naziv
FROM Film
WHERE Naziv Like 'A%';

Ispisati nazive svih filmova kojima naziv završava na slovo 'a'

SELECT Naziv
FROM Film
WHERE Naziv Like '%a';

Koliko je redova u tabeli Film? ili, koliko je filmova u tabeli ?

select COUNT (*) 
from Film;

Koliko je najveće (MAX) trajanje od svih filmova u tabeli?

select MAX(Trajanje)
from Film

A kako biste u to dodali i da se ispiše naziv filma kojem je trajanje najduže?

select Naziv, Trajanje from Film
where Trajanje = (select MAX(Trajanje)from Film)

Da ponovimo, kako da se ispiše sve što imamo u tabeli

select * from Film;

Za sve zapise u tabeli ispisati njihov ZanrID

select ZanrID from Film;

Koliko je filmova u tabeli za svaki od žanrova (za svaki ZanrID)

select ZanrID, COUNT(FilmID)
FROM Film
Group by ZanrID;

Ako uzmemo još jednu tabelu u bazi, na primer Glumac, onda je sve što imamo u tabeli:

select * from Glumac;

Ukupan broj redova u tabeli Glumac

select COUNT(*) from Glumac;

S obzirom da imamo više podataka u tabeli Film, nastavljamo dalje sa upitima nad tom tabelom .....

Grupisati po žanrovima i samo za filmove koji su duži od 2 sata ispisati koji je ZanrID i koliko ih ima

select ZanrID, COUNT(FilmID)
FROM Film
where Trajanje > '02:00:00'
Group by ZanrID;

Napomena:

Vodite računa da WHERE ide pre GROUP BY .....

a ako treba da se dodatno bira od rezultata koji se dobiju grupisanjem, tada se posle GROUP BY  dodaje HAVING.

Za svaki od žanrova treba naći maksimalno trajanje filma

select ZanrID, MAX(trajanje)
from Film
group by ZanrID

ako dodatno želimo da se prikažu samo za one žanrove za koje je maksimalno trajanje filma duže od 3 sata: 

select ZanrID, MAX(trajanje) 
from Film
group by ZanrID
HAVING MAX(trajanje) > '3:00:00';

Ispis datuma i vremena nije uvek takav da nam se sviđa. Zbog toga je dobra praksa ako se kontroliše način na koji je prikazano trajanje filmova. Do sada smo koristili CAST i CONVERT. 

Za svaki od žanrova treba naći maksimalno trajanje filma, s tim da se koristi CAST za lepši prikaz datuma

select ZanrID, CAST(MAX(trajanje) AS varchar(10))
from Film
group by ZanrID

Za svaki od žanrova treba naći maksimalno trajanje filma, s tim da se koristi CONVERT za lepši prikaz datuma

select ZanrID,  CONVERT(varchar(10), MAX(Trajanje),108) AS NajduzeTrajanje
from Film
group by zanrid 

Od rezultata koji se dobiju uzeti samo one kod kojih je maksimalno trajanje filma duže od 3 sata

select ZanrID, MAX(trajanje), CONVERT(VARCHAR(10), MAX(Trajanje),108) AS NajduzeTrajanje
from Film
group by ZanrID
HAVING MAX(trajanje) > '3:00:00';

Prikazati koliko je najmanje trajanje od svih folmova u tabeli

select MIN(Trajanje) 
from Film

Grupisati po žanrovima i ispisati koliko je najkraće trajanej filmova za svaki od žanrova (ZanrID)

select ZanrID,  min(trajanje)  
from Film
group by zanrid 

Prilagoditi prikez trajanja filma pomoću funkcije CONVERT

select ZanrID,  CONVERT(varchar(10), min(Trajanje),108) AS NajmanjeTrajanje
from Film
group by zanrid 

Od rezultata koji se dobiju uzeti samo one kod kojih je minimalno trajanje filma duže od jednog sata

select ZanrID,  min(trajanje) , CONVERT(varchar(10), min(Trajanje),108) AS NajmanjeTrajanje
from Film
group by zanrid
having min(trajanje) >'01:00:00'                           

Poslednja izmena: петак, 7. новембар 2025, 08:34