MariaDB - wartości null
Podczas pracy z wartościami NULL pamiętaj, że są to wartości nieznane. Nie są to puste łańcuchy ani zero, które są prawidłowymi wartościami. Podczas tworzenia tabeli specyfikacje kolumn pozwalają ustawić je tak, aby akceptowały wartości null lub je odrzucały. Po prostu użyj klauzuli NULL lub NOT NULL. Ma to zastosowanie w przypadku brakujących informacji, takich jak numer identyfikacyjny.
Zmienne zdefiniowane przez użytkownika mają wartość NULL do momentu jawnego przypisania. Przechowywane parametry rutynowe i zmienne lokalne pozwalają na ustawienie wartości NULL. Gdy zmienna lokalna nie ma wartości domyślnej, ma wartość NULL.
NULL nie rozróżnia wielkości liter i ma następujące aliasy -
- UNKNOWN (wartość logiczna)
- \N
Operatory NULL
Standardowe operatory porównania nie mogą być używane z wartością NULL (np. =,>,> =, <=, <Lub! =), Ponieważ wszystkie porównania z wartością NULL zwracają NULL, a nie prawdę lub fałsz. Porównania z wartością NULL lub ewentualnie zawierające ją muszą używać operatora „<=>” (NULL-SAFE).
Inni dostępni operatorzy to -
IS NULL - testuje wartość NULL.
NIE JEST NULL - potwierdza brak wartości NULL.
ISNULL - zwraca wartość 1 w przypadku wykrycia wartości NULL i 0 w przypadku jej braku.
COALESCE - Zwraca pierwszą wartość z listy inną niż NULL lub zwraca wartość NULL w przypadku jej braku.
Sortowanie wartości NULL
W operacjach sortowania wartości NULL mają najniższą wartość, więc kolejność DESC skutkuje wartościami NULL na dole. MariaDB umożliwia ustawienie wyższej wartości dla wartości NULL.
Można to zrobić na dwa sposoby, jak pokazano poniżej -
SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;
W inny sposób -
SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;
Funkcje NULL
Funkcje generalnie zwracają wartość NULL, gdy jakiekolwiek parametry mają wartość NULL. Istnieją jednak funkcje zaprojektowane specjalnie do zarządzania wartościami NULL. Oni są -
IFNULL()- Jeśli pierwsze wyrażenie nie ma wartości NULL, zwraca je. Kiedy zwraca wartość NULL, zwraca drugie wyrażenie.
NULLIF() - Zwraca NULL, gdy porównywane wyrażenia są równe, jeśli nie, zwraca pierwsze wyrażenie.
Funkcje takie jak SUMA i AVG ignorują wartości NULL.
Wstawianie wartości NULL
Po wstawieniu wartości NULL do kolumny zadeklarowanej jako NIE NULL, występuje błąd. W domyślnym trybie SQL kolumna NOT NULL wstawi zamiast tego wartość domyślną na podstawie typu danych.
Gdy pole jest TIMESTAMP, AUTO_INCREMENT lub wirtualną kolumną, MariaDB inaczej zarządza wartościami NULL. Wstawienie do kolumny AUTO_INCREMENT powoduje wstawienie następnej liczby w sekwencji w jej miejsce. W polu TIMESTAMP MariaDB przypisuje zamiast tego bieżący znacznik czasu. W kolumnach wirtualnych, temat omówiony w dalszej części tego samouczka, przypisywana jest wartość domyślna.
Indeksy UNIQUE mogą zawierać wiele wartości NULL, jednak klucze podstawowe nie mogą mieć wartości NULL.
Wartości NULL i polecenie Alter
Gdy używasz polecenia ALTER do modyfikowania kolumny, w przypadku braku specyfikacji NULL, MariaDB automatycznie przypisuje wartości.