Logo Platforma Edukacyjna - kursy do matury i egzaminów z informatyki

NULL: brak wartości

NULL znaczy, że w polu nie ma żadnej wartości. To nie zero i nie pusty tekst, więc baza porównuje go inaczej niż resztę.

Najpierw teoria

Co to jest NULL?

NULL to brak wartości. Nie zero i nie pusty tekst, tylko „nie wiadomo”.

Pusty tekst '' to wartość: ktoś wpisał, że nic. NULL znaczy, że nikt niczego nie wpisał.

Każde porównanie z NULL daje „nie wiadomo”, a WHERE przepuszcza tylko prawdę. Dlatego NULL sprawdzasz osobno, przez IS NULL.

Krakówwartość
 pusty tekst ''
też wartość
NULLNULL
nie wiadomo
'Kraków' = 'Kraków'prawdaNULL = 'Kraków'nie wiadomoNULL = NULLnie wiadomoNULL IS NULLprawda

Brak wartości sprawdzasz przez IS NULL. Antoni nie ma wpisanego miasta.

To zapytanie możesz zmienić: kliknij w nie, wpisz swoje i naciśnij Enter. Uczniowie odegrają Twoją wersję.

FROM uczniowie: 6 wierszy w szeregu. Każdy wiersz to jedna postać, a kartki pod nią to kolumny.

1/3
imienazwiskomiasto
OlaMazurKraków
MajaKaczmarekKraków
FilipGrabowskiNiepołomice
SzymonMichalskiSkawina
LenaKrólKraków
AntoniWieczorekNULL

IS NOT NULL zostawia wiersze, w których wartość jest.

FROM uczniowie: 6 wierszy w szeregu. Każdy wiersz to jedna postać, a kartki pod nią to kolumny.

1/3
imienazwiskomiasto
OlaMazurKraków
MajaKaczmarekKraków
FilipGrabowskiNiepołomice
SzymonMichalskiSkawina
LenaKrólKraków
AntoniWieczorekNULL

Przez = NULL nie przejdzie nikt, bo to porównanie daje „nie wiadomo”.

FROM uczniowie: 6 wierszy w szeregu. Każdy wiersz to jedna postać, a kartki pod nią to kolumny.

1/3
imienazwiskomiasto
OlaMazurKraków
MajaKaczmarekKraków
FilipGrabowskiNiepołomice
SzymonMichalskiSkawina
LenaKrólKraków
AntoniWieczorekNULL

Ta sama pułapka siedzi w <>. Antoni nie ma miasta, więc nie przejdzie też przez warunek „miasto inne niż Kraków”.

FROM uczniowie: 6 wierszy w szeregu. Każdy wiersz to jedna postać, a kartki pod nią to kolumny.

1/3
imienazwiskomiasto
OlaMazurKraków
MajaKaczmarekKraków
FilipGrabowskiNiepołomice
SzymonMichalskiSkawina
LenaKrólKraków
AntoniWieczorekNULL

COUNT(*) liczy wszystkie wiersze, a COUNT(kolumna) tylko te, w których kolumna ma wartość.

FROM uczniowie: 6 wierszy w szeregu. Każdy wiersz to jedna postać, a kartki pod nią to kolumny.

1/3
imienazwiskomiasto
OlaMazurKraków
MajaKaczmarekKraków
FilipGrabowskiNiepołomice
SzymonMichalskiSkawina
LenaKrólKraków
AntoniWieczorekNULL

IFNULL podstawia swoją wartość w miejsce NULL.

FROM uczniowie: 6 wierszy w szeregu. Każdy wiersz to jedna postać, a kartki pod nią to kolumny.

1/2
imienazwiskomiasto
OlaMazurKraków
MajaKaczmarekKraków
FilipGrabowskiNiepołomice
SzymonMichalskiSkawina
LenaKrólKraków
AntoniWieczorekNULL