Analiza danych i praca z bazami danych często wiążą się z napotykaniem wartości NULL. Te specyficzne elementy, choć na pierwszy rzut oka mogą wydawać się problematyczne, w rzeczywistości stanowią integralną część danych, a umiejętność ich obsługi jest kluczowa dla precyzyjnej analizy.
Zrozumienie istoty wartości NULL oraz ich znaczenia jest niezbędne do uzyskania dokładnego i rzetelnego obrazu danych. W niniejszym artykule omówimy polecenia SQL, które umożliwiają zliczanie wystąpień wartości NULL oraz NOT NULL, co znacznie ułatwi analizę.
Czym jest wartość NULL w SQL?
Wartość NULL w bazach danych SQL oznacza brak danych. Nie jest to ani zero, ani pusta przestrzeń.
Wartości NULL nie podlegają standardowym operatorom porównania, takim jak =, <, > czy <>. Użycie tych operatorów z wartością NULL skutkuje zwróceniem wyniku jako NIEZNANY.
Można sobie wyobrazić wartość NULL jako puste pole w rekordzie. Gdy tworzymy tabelę, możemy dodać nową kolumnę bez przypisywania jej żadnej wartości. W takim przypadku to pole przyjmie wartość NULL. Co istotne, wartość NULL może być przypisana do kolumn dowolnego typu.
Aby zobrazować to na przykładzie, stwórzmy nową tabelę SQL przy użyciu poniższego kodu:
CREATE TABLE Employee ( FirstName VARCHAR(50), LastName VARCHAR(50), PhoneNum VARCHAR(15), Salary FLOAT ); INSERT INTO Employee (FirstName, LastName, PhoneNum, Salary) VALUES ('Maxwell', 'Ayomide', '812-345-6789', 150000.00), ('David', 'Tosin', NULL, 450000.00), ('Eben', 'Teniola', '912-345-6789', 590000.00), ('Kenneth', 'Olisa', '809-456-8732', NULL), ('Esther', 'Oge', NULL, NULL);
Możliwa jest także aktualizacja wartości NULL za pomocą polecenia UPDATE. Poniższy kod pokazuje przykład:
UPDATE Employee SET FirstName="Esther" WHERE Salary = 200000;
Aby zobaczyć efekt, wykonaj:
SELECT * FROM Employee;
W jakich sytuacjach wartości NULL są przydatne?
Wartości NULL znajdują zastosowanie w różnych scenariuszach:
- Gdy dane są niedostępne lub nieznane w momencie wprowadzania do bazy.
- Gdy dane nie odnoszą się do danego elementu. Na przykład w ankiecie, pytanie o posiadanie dzieci może generować wartości NULL w przypadku braku odpowiedzi.
Warunek SQL IS NULL – co to takiego?
Polecenie SQL IS NULL jest niezbędne w pracy z bazami danych. Służy ono do selekcji rekordów, w których określona kolumna ma wartość NULL. Zwraca ono wszystkie wiersze, gdzie w wybranej kolumnie występuje wartość pusta.
SELECT FirstName, LastName, PhoneNum FROM Employee WHERE PhoneNum IS NULL;
Powyższe zapytanie wyselekcjonuje wszystkie rekordy z tabeli `Employee`, gdzie pole `PhoneNum` ma wartość NULL.
Co oznacza warunek SQL IS NOT NULL?
Polecenie SQL IS NOT NULL stanowi przeciwieństwo polecenia IS NULL.
Sprawdza ono, czy wartości w danej kolumnie nie są puste (czyli są typu NOT NULL). W wyniku zapytania otrzymujemy wszystkie wiersze, gdzie w wybranej kolumnie nie występuje wartość NULL.
SELECT FirstName, LastName, PhoneNum FROM Employee WHERE PhoneNum IS NOT NULL;
Powyższe zapytanie zwróci wszystkie rekordy z tabeli `Employee`, w których pole `PhoneNum` ma przypisaną wartość (inną niż NULL).
Jak zliczyć wartości NULL w kolumnie SQL?
Do zliczania elementów w SQL służy polecenie COUNT(). Jest ono bardzo przydatne podczas analizy danych w tabelach, podzapytaniach i tabelach tymczasowych.
Aby policzyć, ile jest wartości NULL w kolumnie `PhoneNum`, użyjemy poniższego zapytania:
SELECT COUNT(*) AS [Total Number of NULL] FROM Employee WHERE PhoneNum IS NULL
Wynik zapytania to:
Jak zliczyć wartości NOT NULL w kolumnie?
Aby zliczyć wartości inne niż NULL w kolumnie `PhoneNum`, używamy polecenia `IS NOT NULL`.
SELECT COUNT(PhoneNum) AS [Total Number of Non-NULL Values] FROM Employee WHERE PhoneNum IS NOT NULL
Oto wynik:
Możliwe jest także umieszczenie wyniku w tabeli:
SELECT SUM(CASE WHEN PhoneNum is null THEN 1 ELSE 0 END) AS [Number Of Null Values], COUNT(PhoneNum) AS [Number Of Non-Null Values] FROM Employee
W powyższym zapytaniu wykorzystano konstrukcję `CASE` oraz `IS NULL`, aby zaklasyfikować wartości NULL w kolumnie `PhoneNum` jako 1. Ta wartość jest sumowana i przechowywana w nowej kolumnie o nazwie `Number Of Null Values`.
Podsumowanie analizy wartości NULL
Praca z wartościami NULL, choć na początku może wydawać się skomplikowana, w rzeczywistości jest bardzo prosta. Dzięki poleceniu `COUNT()` możemy zliczać wystąpienia wartości NULL i NOT NULL w kolumnach SQL.
Znajomość tych poleceń pozwala na efektywną i sprawną analizę danych.
newsblog.pl
Maciej – redaktor, pasjonat technologii i samozwańczy pogromca błędów w systemie Windows. Zna Linuxa lepiej niż własną lodówkę, a kawa to jego główne źródło zasilania. Pisze, testuje, naprawia – i czasem nawet wyłącza i włącza ponownie. W wolnych chwilach udaje, że odpoczywa, ale i tak kończy z laptopem na kolanach.