Wartości NULL MySQL
Co to jest wartość NULL?
Pole o wartości NULL to pole bez wartości.
Jeśli pole w tabeli jest opcjonalne, można wstawić nowy rekord lub zaktualizować rekord bez dodawania wartości do tego pola. Następnie pole zostanie zapisane z wartością NULL.
Uwaga: Wartość NULL różni się od wartości zerowej lub pola zawierającego spacje. Pole o wartości NULL to takie, które zostało pozostawione puste podczas tworzenia rekordu!
Jak przetestować pod kątem wartości NULL?
Nie jest możliwe testowanie wartości NULL za pomocą operatorów porównania, takich jak =, < lub <>.
Zamiast tego będziemy musieli użyć operatorów IS NULL
i .
IS NOT NULL
JEST NULL Składnia
SELECT column_names
FROM table_name
WHERE column_name IS NULL;
NIE JEST NULL Składnia
SELECT column_names
FROM table_name
WHERE column_name IS NOT NULL;
Demo bazy danych
Poniżej znajduje się wybór z tabeli „Klienci” w przykładowej bazie danych Northwind:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
Operator IS NULL
Operator IS NULL
służy do testowania pustych wartości (wartości NULL).
Poniższy kod SQL zawiera listę wszystkich klientów z wartością NULL w polu „Adres”:
Przykład
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address
IS NULL;
Wskazówka: Zawsze używaj IS NULL, aby szukać wartości NULL.
Operator NIE JEST NULL
Operator IS NOT NULL
służy do testowania wartości niepustych (wartości NOT NULL).
Poniższy kod SQL zawiera listę wszystkich klientów z wartością w polu „Adres”:
Przykład
SELECT CustomerName, ContactName, Address
FROM Customers
WHERE Address
IS NOT NULL;