Baze podataka su značajan sastavni dio modernih aplikacija. Međutim, baze podataka pohranjuju ogromnu količinu podataka. Stoga su nam potrebni načini za filtriranje podataka i dohvaćanje samo potrebnih zapisa.
Jedna od najčešćih metoda filtriranja podataka u SQL-u je korištenje klauzule WHERE. Klauzula WHERE u SQL-u omogućuje nam filtriranje zapisa na temelju zadanog uvjeta. Ova klauzula može odrediti jedan ili više uvjeta koji nam omogućuju filtriranje zapisa koje vraća naredba SELECT.
Ovaj vodič istražuje kako raditi s klauzulom WHERE i odrediti više uvjeta u jednoj klauzuli što omogućuje kontroliranije i preciznije filtriranje podataka.
Osnove klauzule SQL WHERE
Počnimo s osnovama i naučimo osnove rada s WHERE klauzulom u SQL-u.
Pretpostavimo da imamo tablicu koja sadrži informacije o zemlji i dohvaćamo samo zemlje s populacijom (po kvadratnom kilometru) većom od 100 i površinom većom od 2000 000.
Upit možemo pokrenuti na sljedeći način:
IZABERI * FROM sample_db.country_informationGDJE područje > 2.000.000 I stanovništvo_po_km_sq > 100 ;
U prethodnom primjeru koristimo se klauzulom WHERE i operatorom AND za određivanje dva uvjeta. Korištenje operatora AND govori SQL-u da oba uvjeta MORAJU biti ispunjena da bi zapis bio uključen u skup rezultata.
Ovo bi trebalo vratiti samo zemlje koje odgovaraju navedenim kriterijima kako slijedi:
Pogledajmo druge operatore za specificiranje višestrukih uvjeta u klauzuli WHERE.
SQL OR operator
Operator OR omogućuje nam da navedemo više uvjeta u klauzuli WHERE. Ipak, za razliku od operatora I koji zahtijeva ispunjenje svih uvjeta, operator ILI zahtijeva ispunjenje barem jednog od uvjeta.
Na primjer, da odaberemo zemlje koje imaju područje veće od 2000000 ili stanovništvo (po kvadratnom kilometru) veće od 100, možemo pokrenuti sljedeći upit:
IZABERI * FROM sample_db.country_informationGDJE područje > 2.000.000 ILI populacija_po_km_sq > 100 ;
U ovom slučaju, upit bi trebao vratiti rezultate na sljedeći način:
SQL IN operator
Također možemo koristiti IN operator za određivanje više vrijednosti za stupac. Na primjer, da odaberemo zemlje čije ime uključuje nizove 'United States' i 'Russia', možemo pokrenuti upit na sljedeći način:
IZABERI * FROM sample_db.country_informationWHERE country IN ( 'Ujedinjene države' , 'Rusija' ) ;
Proizlaziti:
SQL NOT operator
Operator NOT nam omogućuje negiranje zadanog uvjeta.
Na primjer, odaberite zemlje koje nemaju navedeno područje i popularnost po kvadratnom kilometru:
IZABERI * FROM sample_db.country_informationGDJE NE područje > 2.000.000 I stanovništvo_po_km_sq > 100 ;
Proizlaziti:
SQL višestruki operatori
Također možemo kombinirati više operatora kako bismo odredili složenije uvjete.
IZABERI * FROM sample_db.country_informationGDJE ( informacije o zemlji.područje > 2.000.000 I stanovništvo_po_km_sq > 100 ) ILI država = 'Kina' ;
Izlaz:
U ovom primjeru koristimo zagrade za grupiranje prva dva uvjeta tako da se procjenjuju kao jedan uvjet prije usporedbe s trećim uvjetom.
Zaključak
Naučili smo kako koristiti klauzulu WHERE za specificiranje višestrukih uvjeta u SQL-u. Osim toga, pokrili smo operatore AND, OR, IN i NOT i otkrili kako ih kombinirati za stvaranje složenijih uvjeta.