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ę.
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.
''też wartość
nie wiadomo
'Kraków' = 'Kraków'prawdaNULL = 'Kraków'nie wiadomoNULL = NULLnie wiadomoNULL IS NULLprawdaBrak 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.
| imie | nazwisko | miasto |
|---|---|---|
| Ola | Mazur | Kraków |
| Maja | Kaczmarek | Kraków |
| Filip | Grabowski | Niepołomice |
| Szymon | Michalski | Skawina |
| Lena | Król | Kraków |
| Antoni | Wieczorek | NULL |
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.
| imie | nazwisko | miasto |
|---|---|---|
| Ola | Mazur | Kraków |
| Maja | Kaczmarek | Kraków |
| Filip | Grabowski | Niepołomice |
| Szymon | Michalski | Skawina |
| Lena | Król | Kraków |
| Antoni | Wieczorek | NULL |
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.
| imie | nazwisko | miasto |
|---|---|---|
| Ola | Mazur | Kraków |
| Maja | Kaczmarek | Kraków |
| Filip | Grabowski | Niepołomice |
| Szymon | Michalski | Skawina |
| Lena | Król | Kraków |
| Antoni | Wieczorek | NULL |
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.
| imie | nazwisko | miasto |
|---|---|---|
| Ola | Mazur | Kraków |
| Maja | Kaczmarek | Kraków |
| Filip | Grabowski | Niepołomice |
| Szymon | Michalski | Skawina |
| Lena | Król | Kraków |
| Antoni | Wieczorek | NULL |
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.
| imie | nazwisko | miasto |
|---|---|---|
| Ola | Mazur | Kraków |
| Maja | Kaczmarek | Kraków |
| Filip | Grabowski | Niepołomice |
| Szymon | Michalski | Skawina |
| Lena | Król | Kraków |
| Antoni | Wieczorek | NULL |
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.
| imie | nazwisko | miasto |
|---|---|---|
| Ola | Mazur | Kraków |
| Maja | Kaczmarek | Kraków |
| Filip | Grabowski | Niepołomice |
| Szymon | Michalski | Skawina |
| Lena | Król | Kraków |
| Antoni | Wieczorek | NULL |