Professional Documents
Culture Documents
14 Upiti - I Deo - Select
14 Upiti - I Deo - Select
1
Upiti nad jednom tabelom kojima se prikazuje prost, neizmenjen sadržaj tabele
Select upiti
Ovi upiti uzimaju podatke iz jedne ili više tabela i prikazuje ih u odgovarajućoj formi. Opšti oblik
select upita je:
2
Primer 4. Prikazati drugih deset prijava.
SELECT *
FROM prijava
LIMIT 10,10;
Ovaj predikat se koristi kada je potrebno da se prikažu samo različite vrednosti atributa.
SELECT prijava.predmetID
FROM prijava;
Klauzula WHERE
SELECT student.*
FROM student
WHERE (((student.GodinaUpisa)=2008)) OR (((student.GodinaUpisa)=2009));
3
Primer 9. Prikazati imena svih studenta koji su upisani 2007. godine i čiji je prosek iznad 7.
SELECT student.ime
FROM student
WHERE (((student.GodinaUpisa)=2007) AND ((student.prosek)>7));
Primer 10. Prikazati ime i broj indeksa studenata koji se zovu Sandra i Ana. Koristiti operator IN.
Primer 11. Prikazati ime i broj indeksa studenata koji nisu upisani 2007. Koristiti operator not.
4
NULL vrednosti
Kad neko polje nije definisano, tj. nema nikakve vrednosti u njemu za to polje se kaže da ima NULL
vrednost. Na primer u tabeli Predmet se može primetiti da za neke predmete nije upisano ime profesora, a to
je iz razloga što ti profesori nisu stalno zaposleni i menjaju se iz godine u godinu.
Primer 12. Prikazati nazive predmeta koji nemaju stalnog profesora, tj. nemaju ime profesora.
SELECT predmet.naziv
FROM predmet
WHERE (((predmet.profesor) Is Null));
SELECT predmet.naziv
FROM predmet
WHERE (((predmet.profesor) Is Not Null));
Klauzula ORDER BY
Ova klauzula se koristi prilikom sortiranja. Sortiranje može biti u rastućem (ASCENDING) i
opadajućem redosledu (DESCENDING).
NAPOMENA: Pošto je podrazumevano sortiranje u rastućem redosledu nije neophodno pisati ASC u
klauzuli ORDER BY.
Primer 14. Prikazati u opadajućem redosledu imena onih studenata koji imaju prosek ispod 8.
SELECT student.ime
FROM student
WHERE (((student.prosek)<8))
ORDER BY student.ime DESC;
Primer 15. Prikazati u rastućem redosledu prosek i imena onih studenata koji su se upisali posle 2008.
godine.
5
Primer 16. Prikazati ocene studenta sa brojem indeksa 10120081 sortiranih po opadajućem poretku
ocena.
SELECT *
FROM prijava
WHERE studentid = 10120081
ORDER BY ocena DESC;
Primer 17. Prikazati prve tri šifre predmeta za koje je studenta sa brojem indeksa 10120081 dobio
najveće ocene.
SELECT *
FROM prijava
WHERE studentid = 10120081
ORDER BY ocena DESC
LIMIT 3;
FUNKCIJA OPIS
6
Primer 19. Prikazati prosečnu školarinu za sve upisane studente zaokruženu na dve decimale.
SELECT Round(Avg(student.skolarina),2) AS 'Prosecna skolarina'
FROM student;
7
Primer 25. Pronaći koliko predmeta drži svaki profesor.
I način
SELECT Profesor, COUNT(PredmetID) AS 'Broj predmeta'
FROM Predmet
WHERE (Profesor IS NOT NULL)
GROUP BY Profesor;
II način
select profesor, count(predmetid) as 'Ukupno predmeta'
from predmet
group by profesor
having profesor is not null;
Zadaci za vežbu:
1. Prikazati nazive svih predmeta koji počinju na slovo e.
2. Prikazati imena svih profesora koji imaju slovo v u svome prezimenu.
3. Prikazati sve podatke o studentima koji su upisani pre 2008. godine i imaju prosek ispod 8.
4. Prikazati imena i brojeve indexa onih studenata čije se ime završava na slovo a i koji plaćaju školarinu.
5. Prikazati imena studenata koji ne plaćaju školarinu i imaju prosek iznad 7.60.
6. Prikazati brojeve indexa i imena studenata koji su se upisali 2007. godine na smeru sa šifrom 201.
Prikaz urediti u opadajucem redosledu imena.
8
7. Prikazati u opadajućem redosledu nazive smerova koji imaju slovo s u nazivu.
8. Prikazati ukupan broj studenata koji su dobili ocenu 8 iz bilo kog predmeta.
9. Prikazati prosečnu ocenu na predmetu sa šifrom 100204 i zaokružiti na dve decimale.
10. Prikazati maksimalnu i minimalnu školarinu koju studenti plaćaju.