NULL vrednosti i operatori IS NULL / IS NOT NULL u SQL-u
1. Šta je NULL vrednost?
U bazama podataka često postoje podaci koji nisu poznati ili nisu uneti.
Na primer:
| ID | Ime | Prezime | Stipendija |
|---|---|---|---|
| 1 | Marko | Marković | 12000 |
| 2 | Ana | Anićević | NULL |
| 3 | Jovan | Jovanović | 8000 |
Kod učenice Ane stipendija nije uneta. To ne znači da je stipendija 0, već da je vrednost nepoznata ili nije upisana.
Za takve slučajeve koristi se posebna vrednost:
NULL
NULL ne znači:
❌ nula (0)
❌ prazan tekst ('')
❌ netačan podatak
NULL znači:
✅ podatak nije poznat
✅ podatak nije unet
2. Zašto ne možemo koristiti = NULL?
Mnogi početnici pokušavaju ovako:
WHERE stipendija = NULL
To je pogrešno.
Razlog je što se NULL ne može porediti operatorima: = ili <> ili !=
Zato SQL koristi posebne operatore:
-
IS NULL -
IS NOT NULL
3. Operator IS NULL
Operator IS NULL koristi se kada želimo da pronađemo zapise kod kojih podatak nije unet.
Primer 1 – učenici bez stipendije
SELECT *
FROM UCENICI
WHERE stipendija IS NULL;
Biće prikazani samo učenici kojima stipendija nije poznata ili nije uneta.
Primer 2 – učenici bez broja telefona
SELECT *
FROM UCENICI
WHERE telefon IS NULL;
Prikazuju se učenici kojima nije unet broj telefona.
4. Operator IS NOT NULL
Koristi se kada želimo da prikažemo samo podatke koji postoje.
Primer – učenici koji imaju stipendiju
SELECT *
FROM UCENICI
WHERE stipendija IS NOT NULL;
Biće prikazani samo učenici kojima je stipendija uneta.
Poređenje operatora
| Operator | Namena |
|---|---|
IS NULL |
Pronalaženje neunesenih vrednosti |
IS NOT NULL |
Pronalaženje unetih vrednosti |
LIKE |
Pretraga teksta |
IN |
Provera liste vrednosti |
BETWEEN |
Opseg vrednosti |
Primeri
Učenici bez email adrese
SELECT *
FROM UCENICI
WHERE email IS NULL;
Nastavnici kojima je unet broj telefona
SELECT *
FROM NASTAVNICI
WHERE telefon IS NOT NULL;
Pravilo za lakše pamćenje
Ako podatak ne postoji ili nije unet, koristi se: IS NULL
Ako podatak mora postojati, koristi se: IS NOT NULL