MySQL IS NULL & IS NOT NULL Tutorial mit BEISPIELEN

In SQL ist Null sowohl ein Wert als auch ein Schlüsselwort. Schauen wir uns zunächst den NULL-Wert an –

MySQL IST NULL & IST NICHT NULL

Null als Wert

Einfach ausgedrückt ist NULL lediglich ein Platzhalter für Daten, die nicht vorhanden sind. Beim Ausführen von Einfügevorgängen in Tabellen kann es vorkommen, dass einige Feldwerte nicht verfügbar sind.

Um den Anforderungen echter relationaler Datenbankverwaltungssysteme gerecht zu werden, MySQL verwendet NULL als Platzhalter für die nicht übermittelten Werte. Der Screenshot unten zeigt, wie NULL-Werte in der Datenbank aussehen.

Null als Wert

Schauen wir uns nun einige Grundlagen für NULL an, bevor wir weiter auf die Diskussion eingehen.

  • NULL ist kein Datentyp – Dies bedeutet, dass es nicht als „int“, „date“ oder ein anderer definierter Datentyp erkannt wird.
  • Rechenoperationen Beteiligung NULL immer NULL zurückgeben zum Beispiel 69 + NULL = NULL.
  • Alle Aggregatfunktionen wirken sich nur auf Zeilen aus, die keine NULL-Werte haben.

Lassen Sie uns nun demonstrieren, wie die Zählfunktion Nullwerte behandelt. Sehen wir uns den aktuellen Inhalt der Mitgliedertabelle an.

SELECT * FROM `members`;

Die Ausführung des obigen Skripts führt zu folgenden Ergebnissen

membership_ number full_ names gender date_of_ birth physical_ address postal_ address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter MaleNULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me

Zählen wir alle Mitglieder, die ihre Kontaktnummer aktualisiert haben

SELECT COUNT(contact_number)  FROM `members`;

Die Ausführung der obigen Abfrage liefert die folgenden Ergebnisse.

COUNT(contact_number)
7

Hinweis: Werte, die NULL sind, wurden nicht berücksichtigt

Was ist nicht?

Der logische Operator NOT wird zum Testen von Booleschen Bedingungen verwendet und gibt true zurück, wenn die Bedingung falsch ist. Der Operator NOT gibt false zurück, wenn die getestete Bedingung wahr ist.

Anforderungen NICHT Operator Ergebnis
Wahre falsch
falsch Wahre

Warum NOT null verwenden?

Es wird Fälle geben, in denen wir Berechnungen an einem Abfrageergebnissatz durchführen und die Werte zurückgeben müssen. Das Ausführen von Rechenoperationen an Spalten mit dem Wert NULL gibt Nullergebnisse zurück. Um solche Situationen zu vermeiden, können wir die Klausel NOT NULL verwenden, um die Ergebnisse einzuschränken, mit denen unsere Daten arbeiten.

KEINE NULL-Werte

Nehmen wir an, wir möchten eine Tabelle mit bestimmten Feldern erstellen, die beim Einfügen neuer Zeilen in eine Tabelle immer mit Werten versorgt werden sollen. Beim Erstellen der Tabelle können wir die NOT NULL-Klausel für ein bestimmtes Feld verwenden.

Das unten gezeigte Beispiel erstellt eine neue Tabelle, die die Daten des Mitarbeiters enthält. Die Mitarbeiternummer sollte immer angegeben werden

CREATE TABLE `employees`(
  employee_number int NOT NULL,
  full_names varchar(255) ,
  gender varchar(6)
);

Versuchen wir nun, einen neuen Datensatz ohne Angabe des Mitarbeiternamens einzufügen und sehen, was passiert.

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

Ausführen des obigen Skripts in MySQL Workbench gibt den folgenden Fehler aus:

KEINE NULL-Werte

NULL-Schlüsselwörter

NULL kann auch als Schlüsselwort verwendet werden, wenn Boolesche Operationen mit Werten durchgeführt werden, die NULL enthalten. Das Schlüsselwort „IS/NOT“ wird für solche Zwecke in Verbindung mit dem Wort NULL verwendet. Die grundlegende Syntax, wenn null als Schlüsselwort verwendet wird, lautet wie folgt

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

HIER

  • "IST NULL ist das Schlüsselwort, das den booleschen Vergleich durchführt. Es gibt true zurück, wenn der angegebene Wert NULL ist, und false, wenn der angegebene Wert nicht NULL ist.
  • "NICHT NULL"ist das Schlüsselwort, das den booleschen Vergleich durchführt. Es gibt true zurück, wenn der angegebene Wert nicht NULL ist, und false, wenn der angegebene Wert null ist.

Schauen wir uns nun ein praktisches Beispiel an, das das Schlüsselwort NOT NULL verwendet, um alle Spaltenwerte zu entfernen, die Nullwerte haben.

Um mit dem obigen Beispiel fortzufahren, nehmen wir an, wir benötigen Details zu Mitgliedern, deren Kontaktnummer nicht null ist. Wir können eine Abfrage wie folgt ausführen:

SELECT * FROM `members` WHERE contact_number IS NOT NULL;

Das Ausführen der obigen Abfrage liefert nur Datensätze, bei denen die Kontaktnummer nicht null ist.

Angenommen, wir möchten Mitgliedsdatensätze, bei denen die Kontaktnummer null ist. Wir können die folgende Abfrage verwenden

SELECT * FROM `members` WHERE contact_number IS NULL;

Die Ausführung der obigen Abfrage gibt Mitgliedsdetails aus, deren Kontaktnummer NULL ist

membership_ number full_names gender date_of_birth physical_address postal_address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me

Nullwerte vergleichen

Dreiwertige Logik – Das Ausführen von Booleschen Operationen auf Bedingungen, die NULL beinhalten, kann entweder „Unbekannt“, „Wahr“ oder „Falsch“.

Zum Beispiel, mit dem Schlüsselwort „IS NULL“. bei Vergleichsoperationen mit NULL kann entweder zurückkehren was immer dies auch sein sollte. or falschDie Verwendung anderer Vergleichsoperatoren gibt „Unbekannt“ (NULL).

Angenommen, Sie vergleichen Nummer fünf mit 5

SELECT 5 =5;

Das Abfrageergebnis ist 1, was WAHR bedeutet

5 =5
1

Machen wir die gleiche Operation mit NULL

SELECT NULL = NULL;
NULL = NULL
NULL

Schauen wir uns ein anderes Beispiel an

SELECT 5 > 5;
5 > 5
0

Das Abfrageergebnis ist 0, was FALSCH bedeutet

Schauen wir uns dasselbe Beispiel mit NULL an

SELECT NULL > NULL;
NULL > NULL
NULL

Verwenden wir das Schlüsselwort IS NULL

SELECT 5 IS NULL;
5 IS NULL
0

Das Abfrageergebnis ist 0, was FALSCH ist

SELECT NULL IS NULL;

NULL IS NULL
1

Das Abfrageergebnis ist 1, was WAHR ist

Zusammenfassung

  • NULL ist ein Wertplatzhalter für optionale Tabellenfelder.
  • MySQL behandelt den NULL-Wert anders als andere Datentypen. Die NULL-Werte werden bei Verwendung in einer Bedingung als falscher boolescher Wert ausgewertet.
  • Die logische Operation „NICHT“ wird zum Testen auf Boolesche Werte verwendet und wird als „wahr“ ausgewertet, wenn der Boolesche Wert „falsch“ ist, bzw. als „falsch“, wenn der Boolesche Wert „wahr“ ist.
  • Die NOT NULL-Klausel wird verwendet, um NULL-Werte aus einer Ergebnismenge zu entfernen
  • Das Ausführen von arithmetischen Operationen mit NULL-Werten gibt immer NULL-Ergebnisse zurück.
  • Die Vergleichsoperatoren wie [, = usw.] können nicht zum Vergleichen von NULL-Werten verwendet werden.