Kao ลกto im i samo ime kaลพe, komparacioni operatori uporeฤuju izraze i kao rezultat vraฤaju jednu od tri vrednosti: TRUE, FALSE i Unknown. Za TRUE i FALSE nisu potrebna objaลกnjenja, ali ลกta predstavlja „Unknown“? Ova vrednost je vezana za „NULL“ vrednost u slogu baze podataka. NULL vrednost govori da u datom polju odreฤenog sloga nema nikakvog podatka (ni nule (0) i praznog prostora-blank). Na primer, ako imamo komparaciju „Polje_u_bazi = 9“, a dato polje sadrลพi vrednost NULL (tj. ne poseduje nikakvu vrednost), kao rezultat vratiฤe se „Unknown“. Poลกto je ovakva deklaracija ฤesto zbunjujuฤa, mnogi sistemi za upravljanje bazama podataka pretvaraju „Unknown“ u FALSE, i na taj naฤin omoguฤavaju koriลกฤenje specijalog operatora „IS NULL“ kao test za prazna polja u bazi.
Kao primer, uzeฤemo tabelu „Artikli“, u kojoj su izlistani odreฤeni proizvodi i njihove cene. Da bi dobili potpunu informaciju o celoj tabeli sa svim poljima, upotrebiฤemo upit:
SELECT *
FROM Artikli;
I kao rezultat, dobiฤemo tabelu kao na slici. Zapazite da nema nikakvog podatka u polju „Cena“ za artikl „Luk“. U stvari vrednost ovog polja za artikl „Luk“ je „NULL“. U ovom sluฤaju vrednost NULL je bolje uoฤljiva (poลกto se radi o numeriฤkom polju), nego da je vrednost NULL upotrebljena u polju „Artikl“. U polju „Artikl“, praznina bi mogla da predstavlja vrednost NULL ili prazan znak (blank). Sada ฤemo pokuลกati da pronaฤemo vrednosti NULL:
SELECT *
FROM Artikli
WHERE Cena IS NULL;
Kao rezultat dobiฤemo tabelu kao na slici (srednji deo). Videฤete da se kao izlaz pojavio samo jedan slog (Luk).
ล ta ฤe se desiti kao umesto „IS NULL“ upotrebimo operator jednako (=)?
SELECT *
FROM Artikli
WHERE Cena = NULL;
Kao rezultat neฤemo dobiti nijedan slog, jer je komparacija „Cena=NULL“ vratila vrednost „FALSE“ – rezultat je nepoznat. Znaฤi, kad god vam je potrebno da pronaฤete prazne slogove, koristite operator „IS NULL“.
Pratite Krstaricu na www.krstarica.com