SQL - NULL-Werte verstehen: Das Unerkannte ergründen

Hallo da draußen, zukünftige Datenbank-Zauberer! Heute tauchen wir in einen faszinierenden Aspekt von SQL ein, der Neulinge oft zur Verzweiflung bringt - NULL-Werte. Keine Sorge, wenn du noch nie eine Zeile Code geschrieben hast; ich werde dich schrittweise durch dieses Konzept führen, genau wie ich es in den letzten Jahren für unzählige Schüler getan habe. Also hole dir ein Getränk deiner Wahl und lassen uns gemeinsam dieses SQL-Abenteuer starten!

SQL - NULL Values

Was ist ein NULL-Wert?

Bevor wir ins Detail gehen, lassen uns verstehen, was NULL in SQL eigentlich bedeutet. Stell dir vor, du füllst ein Formular aus und es gibt ein Feld, das nach deinem Mittelnamen fragt. Aber was, wenn du keinen Mittelnamen hast? Du kannst nicht "kein Mittelname" schreiben, weil das nicht korrekt ist - du sagst nicht, dass dein Mittelname "kein Mittelname" ist. Du lässt es einfach leer. Diese Leere, meine Freunde, ist im Grunde das, was NULL in SQL darstellt.

In SQL ist NULL ein spezieller Marker, der angibt, dass ein Datenwert in der Datenbank nicht existiert. Es ist nicht null, es ist nicht ein leerer String, es ist das Fehlen jeglichen Wertes. Denke daran als SQLs Möglichkeit zu sagen, "Ich weiß nicht" oder "Diese Information ist nicht verfügbar."

Erstellen einer Tabelle ohne NULL-Werte

Nun, da wir wissen, was NULL ist, schauen wir uns an, wie wir eine Tabelle erstellen können, die keine NULL-Werte zulässt. Dies ist besonders nützlich, wenn du Daten hast, die du unbedingt für jeden Eintrag haben musst.

Beispiel 1: Erstellen einer Studententabelle

CREATE TABLE Students (
StudentID INT NOT NULL,
FirstName VARCHAR(50) NOT NULL,
LastName VARCHAR(50) NOT NULL,
Age INT NOT NULL,
Email VARCHAR(100)
);

In diesem Beispiel erstellen wir eine Tabelle namens "Students". Lassen uns das genauer ansehen:

  1. StudentID, FirstName, LastName und Age sind alle als NOT NULL deklariert. Das bedeutet, diese Felder müssen einen Wert haben; sie können nicht leer bleiben.
  2. Das Feld Email hat kein NOT NULL, was bedeutet, es ist in Ordnung, wenn ein Student keine E-Mail-Adresse angibt.

Durch die Verwendung von NOT NULL sagen wir unserer Datenbank, "Hey, wir brauchen diese Information unbedingt für jeden Studenten. Keine Ausreden!"

Aktualisieren von NULL-Werten in einer Tabelle

Manchmal könntest du dich mit NULL-Werten in deiner Tabelle konfrontiert sehen, die du aktualisieren möchtest. Lassen uns schauen, wie wir das machen können.

Beispiel 2: Aktualisieren von NULL E-Mail-Adressen

Stell dir vor, wir haben bemerkt, dass wir E-Mail-Adressen für alle unsere Studenten benötigen und wir möchten diejenigen aktualisieren, die derzeit NULL sind.

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

Diese Abfrage macht folgendes:

  1. Sie schaut in die Students-Tabelle.
  2. Für jeden Eintrag, bei dem Email IS NULL ist (denke daran, wir können nicht = NULL verwenden!), wird die E-Mail auf '[email protected]' gesetzt.

Das ist so, als ob wir sagen, "Für jeden Studenten, der uns keine E-Mail gegeben hat, verwenden wir diese Platzhalter-E-Mail-Adresse für jetzt."

Löschen von Einträgen mit NULL-Werten

Manchmal möchtest du Einträge entfernen, die NULL-Werte in bestimmten Feldern haben. Lassen uns schauen, wie wir das machen können.

Beispiel 3: Löschen von Studenten ohne Altersinformation

DELETE FROM Students
WHERE Age IS NULL;

Diese Abfrage wird jeden Studenteneintrag entfernen, bei dem das Alter NULL ist. Das ist so, als ob wir sagen, "Wenn wir nicht wissen, wie alt ein Student ist, lass uns ihren Eintrag aus unserer Datenbank entfernen."

Sei vorsichtig bei solchen Operationen! Stelle immer sicher, dass du diese Einträge wirklich löschen möchtest, bevor du如此e Abfrage ausführst.

Arbeiten mit NULL in WHERE-Klauseln

Eine knifflige Sache bei NULL-Werten ist, dass man sie nicht mit normalen Vergleichsoperatoren verwenden kann. Lassen uns schauen, wie man korrekt nach NULL-Werten in WHERE-Klauseln sucht.

Beispiel 4: Finden von Studenten mit fehlenden E-Mail-Adressen

SELECT FirstName, LastName
FROM Students
WHERE Email IS NULL;

Diese Abfrage gibt uns eine Liste aller Studenten, die keine E-Mail-Adresse angegeben haben. Beachte, dass wir IS NULL anstelle von = NULL verwenden. Das ist ein häufiger Fehler, den selbst erfahrene Programmierer manchmal machen!

NULL und Aggregatfunktionen

NULL-Werte können auch beeinflussen, wie Aggregatfunktionen arbeiten. Lassen uns ein Beispiel anschauen.

Beispiel 5: Berechnen des Durchschnittsalters

SELECT AVG(Age) AS AverageAge
FROM Students;

Diese Abfrage berechnet das Durchschnittsalter aller Studenten. Hier ist das interessante Teil: NULL-Werte werden vollständig in dieser Berechnung ignoriert. Also, wenn du 10 Studenten hast, aber nur 8 haben ihr Alter ausgefüllt, wird der Durchschnitt basierend auf diesen 8 Werten berechnet.

Fazit

Und das war's, Leute! Wir haben die Welt der NULL-Werte in SQL durchquert. Wir haben gesehen, wie man Tabellen erstellt, die keine NULL-Werte zulassen, wie man Einträge mit NULL-Werten aktualisiert und löscht und wie man mit NULL-Werten in unseren Abfragen arbeitet.

Denke daran, NULL ist nicht null, es ist nicht ein leerer String, es ist das Fehlen jeglichen Wertes. Es ist SQLs Möglichkeit zu sagen, "Ich weiß nicht." Und jetzt weißt du, wie du diese "Ich weiß nicht"-Situationen wie ein Profi handhaben kannst!

Übe weiter mit diesen Konzepten, und bevor du es weißt, wirst du mit自信 durch die Welt der Datenbanken navigieren. Frohes Abfragen!

Credits: Image by storyset