MariaDB - Nullwerte
Denken Sie beim Arbeiten mit NULL-Werten daran, dass es sich um unbekannte Werte handelt. Sie sind keine leeren Zeichenfolgen oder Nullen, die gültige Werte sind. Bei der Tabellenerstellung können Spaltenspezifikationen festlegen, dass sie Nullwerte akzeptieren oder ablehnen. Verwenden Sie einfach eine NULL- oder NOT NULL-Klausel. Dies hat Anwendungen in Fällen von fehlenden Datensatzinformationen wie einer ID-Nummer.
Benutzerdefinierte Variablen haben bis zur expliziten Zuweisung den Wert NULL. Gespeicherte Routineparameter und lokale Variablen ermöglichen das Festlegen des Werts NULL. Wenn eine lokale Variable keinen Standardwert hat, hat sie den Wert NULL.
NULL unterscheidet nicht zwischen Groß- und Kleinschreibung und hat die folgenden Aliase:
- UNBEKANNT (ein boolescher Wert)
- \N
NULL-Operatoren
Standardvergleichsoperatoren können nicht mit NULL verwendet werden (z. B. =,>,> =, <=, <oder! =), Da alle Vergleiche mit einem NULL-Wert NULL zurückgeben, nicht wahr oder falsch. Vergleiche mit NULL oder möglicherweise mit NULL müssen den Operator "<=>" (NULL-SAFE) verwenden.
Andere verfügbare Betreiber sind -
IS NULL - Testet auf einen NULL-Wert.
IS NOT NULL - Bestätigt das Fehlen eines NULL-Werts.
ISNULL - Gibt bei der Ermittlung eines NULL-Werts den Wert 1 und in Abwesenheit den Wert 0 zurück.
COALESCE - Gibt den ersten Nicht-NULL-Wert einer Liste zurück oder gibt einen NULL-Wert zurück, wenn keiner vorhanden ist.
NULL-Werte sortieren
Bei Sortiervorgängen haben NULL-Werte den niedrigsten Wert, sodass die DESC-Reihenfolge unten zu NULL-Werten führt. Mit MariaDB können Sie einen höheren Wert für NULL-Werte festlegen.
Es gibt zwei Möglichkeiten, dies zu tun, wie unten gezeigt -
SELECT column1 FROM product_tbl ORDER BY ISNULL(column1), column1;
Der andere Weg -
SELECT column1 FROM product_tbl ORDER BY IF(column1 IS NULL, 0, 1), column1 DESC;
NULL-Funktionen
Funktionen geben im Allgemeinen NULL aus, wenn Parameter NULL sind. Es gibt jedoch Funktionen, die speziell für die Verwaltung von NULL-Werten entwickelt wurden. Sie sind -
IFNULL()- Wenn der erste Ausdruck nicht NULL ist, wird er zurückgegeben. Wenn es als NULL ausgewertet wird, gibt es den zweiten Ausdruck zurück.
NULLIF() - Wenn die verglichenen Ausdrücke gleich sind, wird NULL zurückgegeben. Wenn nicht, wird der erste Ausdruck zurückgegeben.
Funktionen wie SUM und AVG ignorieren NULL-Werte.
NULL-Werte einfügen
Beim Einfügen eines NULL-Werts in eine als NOT NULL deklarierte Spalte tritt ein Fehler auf. Im Standard-SQL-Modus fügt eine NOT NULL-Spalte stattdessen einen Standardwert basierend auf dem Datentyp ein.
Wenn ein Feld ein TIMESTAMP, AUTO_INCREMENT oder eine virtuelle Spalte ist, verwaltet MariaDB NULL-Werte unterschiedlich. Das Einfügen in eine AUTO_INCREMENT-Spalte bewirkt, dass die nächste Nummer in der Sequenz an ihrer Stelle eingefügt wird. In einem TIMESTAMP-Feld weist MariaDB stattdessen den aktuellen Zeitstempel zu. In virtuellen Spalten, einem Thema, das später in diesem Lernprogramm behandelt wird, wird der Standardwert zugewiesen.
EINZIGARTIGE Indizes können viele NULL-Werte enthalten, Primärschlüssel können jedoch nicht NULL sein.
NULL-Werte und der Befehl Ändern
Wenn Sie den Befehl ALTER verwenden, um eine Spalte zu ändern, weist MariaDB mangels NULL-Spezifikationen automatisch Werte zu.