21.10: pojmovi, vežbe, ...
1. deo: urađen je isti zadatak kao u prethodnoj grupi: ( LINK )
2. deo: Nad tabelom su rađeni primeri u kojima je pokazano sledeće:
SELECT DISTINCT
Kada želimo da nam SELECT upit vrati samo različite vrednosti (da nema duplikata - eliminiše da se u prikazu ne bi pojavile iste vrednosti (redovi/vrste)
Sintaksa za SELECT DISTINCT:
SELECT DISTINCT kolona1, kolona2, ...
FROM ime_tabele;
SELECT DISTINCT ime
FROM T2;
WHERE iskaz uz SELECT
-
omogućava da se koristi neki kriterijum (uslov) po kojem se vrši
pretraga. Uslov koji se navodi može biti i kombinacija više logičkih
uslova između kojih stoji AND, OR ili NOT.
VAŽNO: logučki
uslovi u SQL-u mogu imati TRI moguće vrednosti: TRUE, FALSE, UNKNOWN.
Bilo koji red iz tražene tabele za koji se zadovolji da je uslov TRUE
biće brikazan u skupu rezultata. Ako je neko polje nepopunjeno, pa se
pokuša nad njim raditi logički izraz, rezultat nije ni true, ni false
već unknown - nepoznat.
WHERE klauzula se koristi da filtrira zapise, tj. da se izdvoje samo oni zapisi koji zadovoljavaju specificirane zahteve.
Sintaksa:
SELECT kolona1, kolona2, ...
FROM ime_tabele
WHERE uslov;
Napomena: klauzula WHERE se ne koristi samo u SELECT, već i u UPDATE, DELETE, ...
Primer: Trebaju nam svi podaci za sve Ane u tabeli T2:
SELECT * FROM T2
WHERE ime='Ana';
Tekstualna i numerička polja:
U SQL-u se oko tekstualnih polja pišu jednostruki navodnici ('Srbija'), mada neke baze podataka dozvoljavaju i dvostruke navodnike. Numerički podaci ne idu u navodnike.
Na primer:
SELECT * FROM T2
WHERE ID=1;
Operatori koji se mogu koristiti uz klauzulu WHERE su:
= jednako,
< manje od,
> veće od,
<= manje ili jednako,
>= veće ili jednako,
<> različito, nejednako, ali se u nekim verzijama SQL-a umesto ovoga koristi !=
BETWEEN - između nekih datih vrednosti,
LIKE - da li liči na neki šablon,
IN - da li je u nekom zadatom skupu vrednosti.
AND - više uslova, svi zadovoljeni
OR - više uslova, zadovoljen bilo koji
NOT - negacija uslova koji se navede nakon ove reči
Sintaksa za korišćenje ovih operatora unutar WHERE:
SELECT kolona1, kolona2, ...
FROM ime_tabele
WHERE uslov1 AND uslov2 AND uslov3 ...;
ili
SELECT kolona1, kolona2, ...ili
FROM ime_tabele
WHERE uslov1 OR uslov2 OR uslov3 ...;
SELECT kolona1, kolona2, ...ili kombinacija .... mogućnosti ima mnogo.
FROM ime_tabele
WHERE NOT uslov;
SELECT * FROM T2
WHERE Grad='Kula' OR Grad='Sombor'
Primeri upotrebe:
1) Korišćenje WHERE klauzule sa operatorom =
Sledeći upit koristi klauzulu WHERE za nalaženje imena svih koji su u tabeli T2 i iz Kule:
SELECT ime
FROM T2
WHERE Grad='Kula';
2) Korišćenje WHERE klauzule sa operatorom AND
Sledeći upit koristi WHERE klauzulu za pronalaženje svih imena osoba iz T2 koji su iz Kule i imaju redni broj 4:
SELECT imeOperator AND daje TRUE samo ako su oba uslova tačna, tj ako je kupac iz Kule i ima redni broj 4.
FROM T2
WHERE Grad='Kula' AND kupacID=4;
3) Korišćenje WHERE klauzule sa operatorom OR
Tražimo kupce koji su ili sa ID =1 ili sa ID = 3
SELECT imeLogički uslov je tačan ako je zadovoljena bilo koja strana OR
FROM T2
WHERE ID=1 OR ID=3;
SELECT ime
FROM T2
WHERE ID BETWEEN 1 AND 4;
SELECT ime
FROM T2
WHERE ime LIKE '%ić';
SELECT ime
FROM T2
WHERE ID IN (1, 3, 5);
SELECT ime
FROM T2
WHERE grad IS NULL;
SELECT ime
FROM T2
WHERE grad IS NOT NULL;
SELECT imeU sledećem primeru tražimo sve sa rednim brojem manjim od 3:
FROM T2
WHERE Grad <> 'Kula';
SELECT ime
FROM T2
WHERE ID < 3;
ORDER BY iskaz uz SELECT
Kada se koristi klauzula SELECT
da bi se dobili podaci iz baze, rezultat koji se dobije nije sortiran.
To znači da može da se dobije bilo kakav redosled redova koji se dobiju
kao rezultat upita.
ORDER BY klauzula se koristi za sortiranje rezultata u rastućem ili u opadajućem redosledu. Podrazumevano je u rastućem redosledu, ako se drugačije ne navede.
Sintaksa za korišćenje ORDER BY:
SELECT kolona1, kolona2, ...
FROM ime_tabele
ORDER BY kolona1, kolona2, ... ASC|DESC;
Deo u kome je ORDER BY se uvek piše na kraju upita !
i na kraju:
učenici dobijaju jedan po jedan upit (4 ukupno ovaji put, jer je bilo manje vremena na kraju časa) - koliko upita urade kako treba, toliku ocenu dobiju