
Operowanie na bazach danych w SQL często wymaga obsługi wartości pustych, czyli NULL. Właśnie do tego służy operator IS NULL
. Jeśli kiedykolwiek zastanawiałeś się, jak działa i do czego dokładnie można go wykorzystać, to jesteś w dobrym miejscu.
Co to jest NULL w SQL?
NULL w SQL nie jest równoważny z zerem, pustym ciągiem znaków ani spacją. NULL oznacza brak wartości – coś, co jest nieznane lub niezdefiniowane. Właśnie dlatego standardowe operatory porównania, takie jak =
lub !=
, nie działają na wartościach NULL.
Jak działa IS NULL w SQL?
Składnia operatora IS NULL
jest bardzo prosta. Używamy go w zapytaniach SQL, aby sprawdzić, czy dana kolumna zawiera wartość NULL. Oto podstawowy przykład:
SELECT * FROM employees WHERE department_id IS NULL;
Powyższe zapytanie zwróci wszystkich pracowników, którzy nie mają przypisanego działu (ich department_id
jest NULL).
IS NULL kontra = NULL – dlaczego to nie działa?
Jednym z najczęstszych błędów początkujących użytkowników SQL jest użycie operatora równości do porównania z NULL, np.:
SELECT * FROM employees WHERE department_id = NULL;
Powyższe zapytanie nie zwróci żadnego wyniku, ponieważ w SQL porównania z NULL nie zwracają TRUE
ani FALSE
, ale UNKNOWN
. Zamiast tego zawsze trzeba używać IS NULL
.
Jak obsługiwać wartości NOT NULL?
Jeśli chcemy znaleźć tylko te rekordy, gdzie dana kolumna ma wartość inną niż NULL, używamy operatora IS NOT NULL
. Przykładowe zapytanie:
SELECT * FROM employees WHERE department_id IS NOT NULL;
Powyższe zapytanie zwróci tylko tych pracowników, którzy mają przypisany dział.
Praktyczne zastosowania IS NULL
- Filtrowanie brakujących danych – przydatne przy analizie danych w bazie.
- Unikanie błędów w obliczeniach – np. próby sumowania NULL mogą prowadzić do niepoprawnych wyników.
- Obsługa błędów i braków informacji – np. znalezienie użytkowników bez przypisanego adresu e-mail.
NULL a operacje arytmetyczne – pułapki, na które trzeba uważać
Operacje na NULL działają inaczej, niż mogłoby się wydawać. Każde działanie matematyczne na wartości NULL zwróci również NULL. Przykład:
SELECT 10 + NULL; -- wynik: NULL
Dlatego warto stosować funkcję COALESCE
, aby zamienić NULL na wartość domyślną:
SELECT 10 + COALESCE(NULL, 0); -- wynik: 10
NULL w tabelach – przykładowe dane
Spójrzmy na przykładową tabelę z wartościami NULL:
ID | Imię | |
---|---|---|
1 | Jan | jan@example.com |
2 | Maria | NULL |
3 | Adam | adam@example.com |
Zapytanie, które zwróci użytkowników bez adresu e-mail:
SELECT * FROM users WHERE email IS NULL;
Podsumowanie
Operator IS NULL
w SQL to podstawowe narzędzie do pracy z brakującymi danymi. Dzięki niemu możemy lepiej zarządzać naszymi danymi, unikać błędów w obliczeniach oraz skuteczniej analizować informacje w bazach danych. Warto pamiętać, że NULL w SQL ma swoje unikalne zasady i trzeba go traktować inaczej niż zwykłe wartości liczbowe czy tekstowe.
Inny ciekawy artykuł:
Jak działa NULLIF w języku SQL? Przykłady zastosowania
Opanuj SQL z moim kursem!
Poznasz zarówno podstawy, jak i zaawansowane zapytania analityczne (CTE, subqueries, window functions). Nauczysz się pracować na różnych silnikach – na kursie pracujemy zarówno na MySQL, jak i na Postgres. Wszystko zainstalujemy na Twoim komputerze, plus dostaniesz mnóstwo zestawów danych do ćwiczeń.
Zostań analitykiem danych – dołącz do KajoDataSpace!
Najlepsza ścieżka do zawodu analityka danych. Dostęp do pełnych wersji kursów online z Excela, SQLa, Tableau i Pythona z certyfikatami + specjalistycznych webinarów z PowerBI.
Ekskluzywana ale pomagająca sobie społeczność.
Ponad 61 godzin materiałów video.
Spotkania LIVE co miesiąc.
Mój osobisty mentoring.