Baze podataka 2 - FESB
Baze podataka 2 - FESB
Baze podataka 2 - FESB
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)