You are on page 1of 3

Selekcija, izdvajanje slogova koji zadovoljavaju uslov

 klauzula WHERE

U svim dosadašnjim primjerima, u rezultatu su se pojavljivali svi redovi,


slogovi jedne tabele. Moguće je primjeniti naredbu SELECT samo na neke
slogove (n-torke) koje zadovoljavaju ili ne zadovoljavaju zadate uslove. U tu
svrhu koristimo klauzulu WHERE (gdje je), i ona nam omogućava:
 izdvajanje (selekciju) redova koji zadovoljavaju neki uslov,
 izdvajanje redova koji zadovoljavaju više uslova (AND),
 izdvajanje redova koji zadovoljavaju bar jedan od uslova (OR),
 izdvajanje redova koji zadovoljavaju složene uslove (AND i OR),
 izdvajanje redova čija je vrijednost unutar nekih granica (BETWEEN),
 izdvajanje redova čija vrijednost pripada nekoj listi vrijednosti (IN),
 izdvajanje redova koji ne zadovoljavaju neke uslove (NOT, IS NOT),
 izdvajanje redova ako neka vrijednost postoji (EXISTS), itd.
Sintaksa pisanja uslova (WHERE), pomoću izraza upoređivanja, u opštem
slučaju je sljedeća:
argument1 operator poređenja argument2
a argumenti mogu biti:
 jedan atribut,
 skup atributa (u zagradama odvojeni zarezom) ili
 naredba SELECT
koja vraća najviše jednu n-torku, dok operator poređenja može biti bilo koji od
operatora:
 veći (>),
 manji (<),
 veći ili jednak (>=),
 manji ili jednak (<=),
 jednak (=) i
 različit (< >, !=).
Ako se porede argumenti koji se sastoje od više atributa, tada oba argumenta
moraju imati jednak broj atributa, a porede se prvi sa prvim, drugi sa drugim, itd.
Napomenimo da atributi koji se porede moraju imati isti domen, odnosno moraju
biti istog, ili kompatibilnog tipa podataka.
Prilikom postavljanja uslova, mogu se koristiti sljedeće klauzule:
 BETWEEN (između).
 IN (u),
 EXISTS (postoji),
 ANY (bilo koji, ma koji),
 SOME (neki),
 ALL (svi).
Sintaksa operacije BETWEEN ima opšti oblik:
argument1 [NOT] BETWEEN argument2 AND argument3
a rezultat ovog testa je istinit ako se vrijednost za argument1 nalazi (ili ne nalazi
– NOT) između vrijednosti argument2 i argument3 uključujući i granice toga
intervala.
Opcija EXISTS koristi se za provjeru postojanja najmanje jedne n-torke u
rezultatu pretraživanja. Po pravilu, koristi se u ugniježdenim upitima. Sintaksa
ove naredbe glasi:
EXISTS (relacioni izraz).
Odgovor je istinit (TRUE), ako relacioni izraz daje barem jednu n-torku kao
rezultat, u suprotnom je neistinit (FALSE).

Primjer 1. Prikazati imena zaposlenih koji rade u odjeljenju 10.


SELECT ime FROM RADNIK
WHERE brod = 10;
U ovom slučaju, kao rezultat upita nećemo dobiti imena svih
zaposlenih, već samo onih koji su iz odjeljenja 10, jer smo taj uslov
dodali u klauzuli WHERE. Ovisno o tome koliko je zaposlenih u
odjeljenju 10, kao rezultat ovog upita može se dobiti:
- nula zapisa, ako nema nijedan uposleni u odjeljenju 10,
- svi zapisi iz tabele RADNIK, ako su svi uposleni u odjeljenju 10,
- između 0 i ukupnog broja zapisa tabele RADNIK, ako su samo neki radnici
uposleni u odjeljenju 10.

Primjer 2. Prikazati imena zaposlenih koji rade u odjeljenju 50.


SELECT ime FROM RADNIK
WHERE brod = 50;
Rezultat ovog upita je prazna tabela, jer ne postoji nijedan zaposleni u odjeljenju
50.

Primjer 3. Prikazati imena zaposlenih koji rade u odjeljenju 70.


SELECT ime FROM RADNIK
WHERE brod = 70;
Takođe, rezultat je prazna tabela, jer odjeljenje 70 ne postoji.

Primjer 4. Prikazati ime, prezime i platu zaposlenog čiji je identifikacioni broj


5786.
SELECT ime, prezime, plata FROM RADNIK
WHERE idbr = 5786;
Rezultat ovog upita je jedan zapis jer postoji zaposleni datog id broja i ne može
se kao rezultat dobiti više od jednog zapisa, jer je atribut idbr primarni ključ u
tabeli RADNIK i može postojati samo jedan zaposleni datog id broja.

Primjer 5. Prikazati ime i platu zaposlenog liji je id broj 5775.


SELECT ime, plata FROM RADNIK
WHERE idbr = 5775;
Rezultat ovog upita nema nijedan slog, jer ne postoji radnik sa datim id brojem.

You might also like