MySQL IST NULL & IST NICHT NULL Tutorial mit BEISPIELEN

Inhaltsverzeichnis:

Anonim

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

Null als Wert

In einfachen Worten ist NULL einfach ein Platzhalter für Daten, die nicht existieren. Wenn Sie Einfügevorgänge für Tabellen ausführen, sind einige Feldwerte manchmal nicht verfügbar.

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

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

  • NULL ist kein Datentyp - dies bedeutet, dass er nicht als "int", "date" oder ein anderer definierter Datentyp erkannt wird.
  • Arithmetische Operationen mit NULL geben immer NULL zurück, z. B. 69 + NULL = NULL.
  • Alle Aggregatfunktionen wirken sich nur auf Zeilen aus, die keine NULL-Werte haben .

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

SELECT * FROM `members`;

Wenn Sie das obige Skript ausführen, erhalten Sie die folgenden Ergebnisse

 
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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
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

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

SELECT COUNT(contact_number) FROM `members`;

Wenn Sie die obige Abfrage ausführen, erhalten Sie 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 auf boolesche Bedingungen verwendet und gibt true zurück, wenn die Bedingung false ist. Der NOT-Operator gibt false zurück, wenn die getestete Bedingung wahr ist

Bedingung

NICHT Bedienerergebnis

Wahr

Falsch

Falsch

Wahr

Warum NICHT null verwenden?

Es wird Fälle geben, in denen wir Berechnungen für eine Abfrageergebnismenge durchführen und die Werte zurückgeben müssen. Durch Ausführen von arithmetischen Operationen für Spalten mit dem Wert NULL werden Nullergebnisse zurückgegeben. Um solche Situationen zu vermeiden, können wir die NOT NULL-Klausel verwenden, um die Ergebnisse zu begrenzen, mit denen unsere Daten arbeiten.

NICHT NULL Werte

Angenommen, wir möchten eine Tabelle mit bestimmten Feldern erstellen, die beim Einfügen neuer Zeilen in eine Tabelle immer mit Werten versehen werden sollten. Wir können die NOT NULL-Klausel für ein bestimmtes Feld verwenden, wenn wir die Tabelle erstellen.

Im folgenden Beispiel wird eine neue Tabelle erstellt, die Mitarbeiterdaten 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 einzufügen, ohne den Namen des Mitarbeiters anzugeben, und sehen, was passiert.

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

Das Ausführen des obigen Skripts in der MySQL-Workbench führt zu folgendem Fehler:

NULL Schlüsselwörter

NULL kann auch als Schlüsselwort verwendet werden, wenn boolesche Operationen für Werte ausgefü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 bei Verwendung von null als Schlüsselwort lautet wie folgt

`comlumn_name' IS NULL`comlumn_name' NOT NULL

HIER

  • "IS 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.
  • "NOT 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, bei dem das Schlüsselwort NOT NULL verwendet wird, um alle Spaltenwerte mit Nullwerten zu entfernen.

Angenommen, wir benötigen Details zu Mitgliedern, deren Kontaktnummer nicht null ist. Wir können eine Abfrage wie 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 folgende Abfrage verwenden

SELECT * FROM `members` WHERE contact_number IS NULL;

Wenn Sie die obige Abfrage ausführen, erhalten Sie Mitgliederdetails, 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 This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
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

Vergleichen des Nullwerts s

Drei-Werte-Logik - Das Ausführen von Booleschen Operationen unter Bedingungen, die NULL betreffen, kann entweder "Unbekannt", "Wahr" oder "Falsch" zurückgeben.

Beispielsweise kann die Verwendung des Schlüsselworts "IS NULL" bei Vergleichsoperationen mit NULL entweder true oder false zurückgeben . Wenn Sie andere Vergleichsoperatoren verwenden, wird "Unbekannt" (NULL) zurückgegeben.

Angenommen, Sie vergleichen Nummer fünf mit 5

SELECT 5 =5;

Das Abfrageergebnis ist 1, was WAHR bedeutet

 
5 =5
1

Lassen Sie uns den gleichen Vorgang mit NULL ausführen

SELECT NULL = NULL;
 
NULL = NULL
NULL

Schauen wir uns ein anderes Beispiel an

SELECT 5 > 5;
 
5> 5
0

Das Abfrageergebnis ist 0, was FALSE 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 FALSE 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 NOT wird zum Testen auf Boolesche Werte verwendet und als wahr ausgewertet, wenn der Boolesche Wert falsch ist, und 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 für NULL-Werte gibt immer NULL-Ergebnisse zurück.
  • Die Vergleichsoperatoren wie [, = usw.] können nicht zum Vergleichen von NULL-Werten verwendet werden.