Użytkownicy nowi w świecie baz danych często są zdezorientowani specjalną wartością związaną z polem - wartością NULL. Wartość ta znajduje się w polu zawierającym dowolny typ danych i ma szczególne znaczenie w kontekście relacyjnej bazy danych. Najlepiej rozpocząć dyskusję na temat NULL z kilkoma słowami na temat tego, czym jest NULL nie :
- NULL nie jest liczbą zero.
- NULL nie jest pustą wartością ciągu znaków ("").
Raczej NULL jest wartością używaną do reprezentowania nieznanego fragmentu danych. Często programiści baz danych używają zwrotu "wartość NULL", ale jest to niepoprawne. Pamiętaj: wartość NULL jest nieznaną wartością, w której pole jest puste.
NULL w prawdziwym świecie
Rzućmy okiem na prosty przykład: tabelę zawierającą ekwipunek dla drzewka owocowego. Załóżmy, że nasz ekwipunek zawiera 10 jabłek i trzy pomarańcze. Sprzedajemy również śliwki, ale nasze informacje o inwentarzu są niekompletne i nie wiemy, ile (jeśli w ogóle) śliwek jest w magazynie. Używając wartości NULL, będziemy mieli tabelę zasobów pokazaną w poniższej tabeli.
Standaryzacja drzewostanów
| InventoryID | Pozycja | Ilość |
| 1 | Jabłka | 10 |
| 2 | Pomarańcze | 3 |
| 3 | Śliwki | ZERO |
Niewłaściwe byłoby dodanie ilości 0 dla rekordu śliwki, ponieważ oznaczałoby to, że mieliśmy Nie śliwki w ekwipunku. Wręcz przeciwnie, możemy mieć trochę śliwek, ale po prostu nie jesteśmy pewni. Tabelę można zaprojektować tak, aby albo dopuszczała wartości NULL, albo nie. Oto przykład SQL, który tworzy tabelę zapasów, która pozwala na niektóre NULL: SQL> CREATE TABLE INVENTORY (InventoryID INT NOT NULL, Item VARCHAR (20) NOT NULL, Quantity INT); Tabela spisu zasobów nie zezwala na wartości NULL dla pliku InventoryID i Pozycja kolumny, ale pozwala im na Ilość kolumna. Chociaż dopuszczenie wartości NULL jest całkowicie poprawne, wartości NULL mogą powodować problemy, ponieważ każde porównanie wartości, w których jedna jest równa NULL, zawsze powoduje NULL. Aby sprawdzić, czy tabela zawiera wartości NULL, użyj operatora IS NULL lub IS NOT NULL. Oto przykład IS NULL: SQL> SELECT INVENTORYID, ELEMENT, ILOŚĆ Z INWENTARYZACJI, GDZIE ILOŚĆ NIE JEST NIŻLIWA; Biorąc pod uwagę nasz przykład tutaj, to powróciłoby: Praca z wartościami NULL często daje wyniki NULL, w zależności od operacji SQL. Na przykład, zakładając, że A ma wartość NULL: Operatory arytmetyczne Operatory porównania To tylko kilka przykładów operatorów, którzy to zrobią zawsze return NULL, jeśli jeden operand ma wartość NULL. Istnieje dużo bardziej złożonych zapytań, a wszystkie są komplikowane przez wartości NULL. Punktem wyjścia jest to, że jeśli zezwolisz na wartości NULL w bazie danych, zrozum konsekwencje i zaplanuj dla nich. To NULL w pigułce!NULL lub NOT NULL?
InventoryID Pozycja Ilość 3 Śliwki
Działa na wartości NULL




