Suche…


Einführung

NULL in SQL sowie Programmieren im Allgemeinen bedeutet wörtlich "nichts". In SQL ist es einfacher zu verstehen als "das Fehlen jeglicher Werte".

Es ist wichtig, es von scheinbar leeren Werten zu unterscheiden, wie z. B. der leere Zeichenfolge '' oder der Zahl 0 , von denen keiner tatsächlich NULL .

Es ist auch wichtig, darauf zu achten, dass NULL in Anführungszeichen eingeschlossen wird, wie 'NULL' ist in Spalten zulässig, die Text akzeptieren, aber nicht NULL und Fehler und falsche Datensätze verursachen kann.

Filtern nach NULL in Abfragen

Die Syntax für das Filtern nach NULL (dh das Fehlen eines Werts) in WHERE Blöcken unterscheidet sich geringfügig von der Filterung nach bestimmten Werten.

SELECT * FROM Employees WHERE ManagerId IS NULL ;
SELECT * FROM Employees WHERE ManagerId IS NOT NULL ;

Beachten Sie, dass die Verwendung von Gleichheitsoperatoren = NULL oder <> NULL (oder != NULL ) immer den Wahrheitswert von UNKNOWN liefert, da NULL nicht gleich irgendetwas ist, auch nicht für sich selbst. UNKNOWN wird von WHERE .

WHERE filtert alle Zeilen, bei denen die Bedingung FALSE oder UKNOWN und behält nur die Zeilen bei, bei denen die Bedingung TRUE .

Nullable-Spalten in Tabellen

Beim Erstellen von Tabellen ist es möglich, eine Spalte als null- oder nicht-nullfähig zu deklarieren.

CREATE TABLE MyTable
(
    MyCol1 INT NOT NULL, -- non-nullable
    MyCol2 INT NULL      -- nullable
) ;

Standardmäßig ist jede Spalte (außer der in der Primärschlüsseleinschränkung) nullwertfähig, sofern nicht ausdrücklich die NOT NULL Einschränkung festgelegt wird.

Der Versuch, einer nicht-nullfähigen Spalte NULL zuzuweisen, führt zu einem Fehler.

INSERT INTO MyTable (MyCol1, MyCol2) VALUES (1, NULL) ;  -- works fine

INSERT INTO MyTable (MyCol1, MyCol2) VALUES (NULL, 2) ;  
        -- cannot insert
        -- the value NULL into column 'MyCol1', table 'MyTable'; 
        -- column does not allow nulls. INSERT fails.

Felder auf NULL aktualisieren

Das Festlegen eines Felds auf NULL funktioniert genauso wie bei jedem anderen Wert:

UPDATE Employees 
SET ManagerId = NULL
WHERE Id = 4

Zeilen mit NULL-Feldern einfügen

Einfügen eines Mitarbeiters ohne Telefonnummer und ohne Manager in die Beispieltabelle Employees :

INSERT INTO Employees
    (Id, FName, LName, PhoneNumber, ManagerId, DepartmentId, Salary, HireDate)
VALUES
    (5, 'Jane', 'Doe', NULL, NULL, 2, 800, '2016-07-22') ;


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow