21.11.2014 Views

Baze podataka 2 - FESB

Baze podataka 2 - FESB

Baze podataka 2 - FESB

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Podupiti sa predikatom usporedbe<br />

<br />

Podupit mora vratiti samo jednu vrijednost; ukoliko podupit vraa više od<br />

jedne vrijednosti javlja se greška u izvršavanju glavnog upita.<br />

Primjer: Prikazati sve studente<br />

koji su roeni u istom mjestu kao<br />

i student ‘x y’.<br />

SELECT student_id, ime, prezime<br />

FROM STUDENT<br />

WHERE mjesto_id =<br />

(SELECT mjesto_id<br />

FROM STUDENT<br />

WHERE ime = ’X’<br />

AND prezime = ’Y’)<br />

ORDER BY prezime, ime<br />

Primjer: Prikazati sve upisne listove<br />

za studenta ‘x y’ osim posljednjega.<br />

SELECT sk_god, sem<br />

FROM UPISNI_LIST<br />

WHERE student_id =<br />

(SELECT student_id<br />

FROM STUDENT<br />

WHERE ime = ’X’<br />

AND prezime = ’Y’)<br />

AND sem <<br />

(SELECT MAX(sem)<br />

FROM UPISNI_LIST<br />

WHERE student_id =<br />

( SELECT student_id<br />

FROM STUDENT<br />

WHERE ime = ’X’<br />

AND prezime = ’Y’))<br />

<br />

<br />

Podupiti sa predikatom postojanja<br />

<br />

Operator EXISTS ispituje postojanje <strong>podataka</strong> uz navedene uvjete. Podupit<br />

sa predikatom postojanja ne vraa nikakve podatke, ve daje samo rezultat<br />

TRUE ili FALSE.<br />

Primjer: Prikazati sve studente koji nemaju niti jedan upisni list.<br />

SELECT student_id, ime, prezime<br />

FROM STUDENT<br />

WHERE NOT EXISTS (SELECT *<br />

FROM UPISNI_LIST<br />

WHERE STUDENT.student_id = UPISNI_LIST.student_id)<br />

Primjer: Prikazati sva mjesta u kojima je roen neki student.<br />

SELECT *<br />

FROM MJESTO<br />

WHERE EXISTS (SELECT *<br />

FROM STUDENT<br />

WHERE MJESTO.mjesto_id = STUDENT.mjesto_id)

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

Saved successfully!

Ooh no, something went wrong!