SQL - IS NULL: Die Kunst der Handhabung von NULL-Werten meistern

Hallo, ambitionierte Datenbankenthusiasten! Willkommen auf unserer Reise in die faszinierende Welt von SQL, wo wir das geheimnisvolle Reich der NULL-Werte erkunden werden. Ich bin Ihr Guide, Professor Query, und heute werden wir die Geheimnisse des IS NULL-Operators lüften. Holen Sie sich Ihre virtuellen Notizblöcke und tauchen wir ein!

SQL - IS NULL

Der SQL IS NULL Operator: Dein NULL-erkennender Superheld

Stellen Sie sich vor, Sie sind auf einer Party und versuchen herauszufinden, wer kein Geschenk mitgebracht hat. In der Datenbankwelt ist IS NULL wie dein superkräftiges Geschenkdetektor, der dir hilft, diese leeren Hände (oder in unserem Fall, leere Datenbankfelder) zu entdecken.

Der IS NULL Operator wird verwendet, um leere Werte (NULL-Werte) in einer Datenbank zu testen. Aber Moment, was ist eigentlich NULL?

NULL ist nicht null. Es ist kein leerer String. Es ist das Fehlen eines Wertes. Denken Sie daran als die Datenbankäquivalent eines Achselzuckens ?‍♂️.

Hier ist eine schnelle Übersicht unserer NULL-bezogenen Operatoren:

Operator Beschreibung
IS NULL Prüft, ob ein Wert NULL ist
IS NOT NULL Prüft, ob ein Wert nicht NULL ist

Nun sehen wir, wie wir diesen Superhelden in verschiedenen SQL-Szenarien einsetzen können!

IS NULL mit SELECT-Anweisung: Das Unsichtbare finden

Grundlegende Verwendung

Beginnen wir mit einem einfachen Beispiel. Angenommen, wir haben eine Tabelle namens students mit Spalten für student_id, name und email. Einige Studenten haben ihre E-Mail-Adressen noch nicht angegeben.

SELECT * FROM students
WHERE email IS NULL;

Diese Abfrage gibt alle Zeilen zurück, in denen das E-Mail-Feld NULL ist. Es ist, als ob man fragt: "Zeige mir alle Studenten, die vergessen haben, ihre E-Mail-Adressen aufzuschreiben!"

Kombination mit anderen Bedingungen

Wir können IS NULL auch mit anderen Bedingungen kombinieren. Zum Beispiel:

SELECT name, student_id
FROM students
WHERE email IS NULL AND student_id > 1000;

Diese Abfrage sagt: "Gib mir die Namen und IDs der Studenten ohne E-Mail-Adresse und mit einer ID größer als 1000." Es ist, als ob man ein Detektiv ist und die Suchkriterien eingrenzt!

IS NULL mit COUNT()-Funktion: Die Leeren zählen

Die COUNT()-Funktion kann ein großartiger Partner für IS NULL sein. Sehen wir uns an, wie sie zusammenarbeiten:

SELECT COUNT(*) AS total_students,
COUNT(email) AS students_with_email,
COUNT(*) - COUNT(email) AS students_without_email
FROM students;

Diese Abfrage gibt uns drei Informationen:

  1. Die Gesamtzahl der Studenten
  2. Die Anzahl der Studenten mit einer E-Mail-Adresse
  3. Die Anzahl der Studenten ohne eine E-Mail-Adresse

Erinnern Sie sich daran, dass COUNT(*) alle Zeilen zählt, während COUNT(email) nur die nicht-NULL E-Mail-Werte zählt. Es ist, als ob man alle Partygäste zählt, dann die mit Geschenken und subtrahiert, um herauszufinden, wie viele ohne gekommen sind!

IS NULL mit UPDATE-Anweisung: Die Lücken füllen

Manchmal möchten wir NULL-Werte durch etwas bedeutungsvolleres ersetzen. So können wir das tun:

UPDATE students
SET email = '[email protected]'
WHERE email IS NULL;

Diese Abfrage ersetzt alle NULL E-Mail-Werte durch '[email protected]'. Es ist, als ob man allen leeren-handed Partygästen ein Standardgeschenk gibt!

Ein komplexeres Beispiel

Angenommen, wir möchten NULL E-Mail-Adressen durch eine Kombination aus dem Namen des Studenten und einer Standarddomain ersetzen:

UPDATE students
SET email = LOWER(REPLACE(name, ' ', '_')) || '@student.example.com'
WHERE email IS NULL;

Diese Abfrage doet folgendes für Studenten mit NULL E-Mails:

  1. Nimmt ihren Namen
  2. Ersetzt Leerzeichen durch Unterstriche
  3. Konvertiert es in Kleinbuchstaben
  4. Fügt '@student.example.com' an das Ende hinzu

Also wird "John Doe" zu "[email protected]". Es ist, als ob man personalisierte Namensschilder für diejenigen erstellt, die theirs vergessen haben!

IS NULL mit DELETE-Anweisung: Die Leeren entfernen

Manchmal möchten wir Zeilen mit NULL-Werten entfernen. So können wir das tun:

DELETE FROM students
WHERE email IS NULL;

Diese Abfrage löscht alle Zeilen, in denen die E-Mail NULL ist. Seien Sie vorsichtig mit dieser! Es ist, als ob man alle Partygäste, die kein Geschenk gebracht haben, hinauswirft – ein bisschen hart, oder?

Ein sichererer Ansatz

Anstatt zu löschen, möchten wir diese Zeilen vielleicht in eine andere Tabelle verschieben:

INSERT INTO incomplete_records
SELECT * FROM students
WHERE email IS NULL;

DELETE FROM students
WHERE email IS NULL;

Dieser Ansatz verschiebt zuerst die NULL E-Mail-Aufzeichnungen in eine 'incomplete_records'-Tabelle, bevor sie aus der Haupttabelle gelöscht werden. Es ist, als ob man die leeren-handed Gäste in einen anderen Raum bringt, anstatt sie完全hinauszuwerfen!

Schlussfolgerung: Die Null umarmen

Und da habt ihr es, liebe Studenten! Wir haben den IS NULL-Operator und seine verschiedenen Anwendungen in SQL erkundet. Denken Sie daran, NULL-Werte sind nicht Ihr Feind – sie sind nur missverstandene Informationen, die darauf warten, richtig behandelt zu werden.

Während Sie Ihre SQL-Reise fortsetzen, werden Sie feststellen, dass das Beherrschen der NULL-Handhabung entscheidend für die Aufrechterhaltung sauberer und genauer Datenbanken ist. Es ist, als ob man ein versierter Partygeber ist, der sicherstellt, dass jeder accounted für wird, auch diejenigen, die ohne Geschenke gekommen sind!

Weiter üben, bleiben neugierig und denken Sie daran: In der Welt der Datenbanken kann manchmal nichts (NULL) alles bedeuten!

Credits: Image by storyset