MySQL - Operator IS NOT NULL

Hallo da, ambitionierte Datenbankenthusiasten! Heute tauchen wir in die wunderbare Welt von MySQL ein und erkunden einen kleinen, aber feinen Operator namens IS NOT NULL. Keine Sorge, wenn du neu im Programmieren bist; ich werde dich auf dieser Reise Schritt für Schritt führen, genau wie ich es in den letzten Jahren für unzählige Schüler getan habe. Hol dir therefore ein Getränk deiner Wahl und lassen wir loslegen!

MySQL - IS NOT NULL Operator

MySQL Operator IS NOT NULL

Stell dir vor, du organisierst eine Geburtstagsfeier und erstellst eine Gästeliste. Einige Gäste haben bestätigt, dass sie kommen, andere haben gesagt, dass sie es nicht schaffen, und andere haben noch nicht geantwortet. In der Welt der Datenbanken könnten wir diese Situation mit drei Werten darstellen: 'Ja', 'Nein' und NULL (für diejenigen, die noch nicht geantwortet haben). Der Operator IS NOT NULL hilft uns, alle Gäste zu finden, die uns eine Antwort gegeben haben, sei es 'Ja' oder 'Nein'.

In MySQL steht NULL für einen fehlenden oder unbekannten Wert. Es ist nicht das Gleiche wie ein leerer String oder die Null; es ist das Fehlen jeglichen Wertes. Der Operator IS NOT NULL ermöglicht es uns, Zeilen zu finden, bei denen eine bestimmte Spalte einen Wert hat (jeden Wert) anstelle von NULL.

Schauen wir uns ein einfaches Beispiel an:

SELECT * FROM guests WHERE response IS NOT NULL;

Diese Abfrage würde alle Gäste zurückgeben, die eine Antwort gegeben haben, egal ob sie zur Party kommen oder nicht.

Nun erstellen wir eine Tabelle und schauen uns dies in der Praxis an:

CREATE TABLE guests (
id INT PRIMARY KEY,
name VARCHAR(50),
response VARCHAR(3)
);

INSERT INTO guests VALUES
(1, 'Alice', 'Yes'),
(2, 'Bob', 'No'),
(3, 'Charlie', NULL),
(4, 'David', 'Yes'),
(5, 'Eve', NULL);

SELECT * FROM guests WHERE response IS NOT NULL;

Diese Abfrage wird folgendes zurückgeben:

id name response
1 Alice Yes
2 Bob No
4 David Yes

Wie man sieht, werden Charlie und Eve, die nicht geantwortet haben (NULL), nicht im Ergebnis enthalten sein.

IS NOT NULL mit der COUNT()-Funktion

Nun, stellen wir uns vor, du möchtest wissen, wie viele Gäste tatsächlich geantwortet haben. Wir können die COUNT()-Funktion zusammen mit IS NOT NULL verwenden, um diese Information zu erhalten:

SELECT COUNT(*) AS responded_guests
FROM guests
WHERE response IS NOT NULL;

Diese Abfrage wird folgendes zurückgeben:

responded_guests
3

Das tells uns, dass 3 Gäste auf unsere Einladung geantwortet haben. quite neat, oder?

IS NOT NULL mit dem UPDATE-Befehl

Manchmal möchten wir unsere Datenbank basierend darauf aktualisieren, ob ein Wert NULL ist oder nicht. Zum Beispiel, stellen wir uns vor, wir möchten alle NULL-Antworten in 'Vielleicht' ändern:

UPDATE guests
SET response = 'Maybe'
WHERE response IS NULL;

SELECT * FROM guests;

Nach diesem Update wird unsere Gäste-Tabelle folgendermaßen aussehen:

id name response
1 Alice Yes
2 Bob No
3 Charlie Maybe
4 David Yes
5 Eve Maybe

IS NOT NULL mit dem DELETE-Befehl

In einigen Fällen möchten wir Zeilen mit NULL-Werten entfernen. Zum Beispiel, wenn wir beschließen, nur Gäste zu behalten, die eine definitive Antwort gegeben haben:

DELETE FROM guests
WHERE response IS NULL;

SELECT * FROM guests;

Wenn wir dies vor unserem vorherigen UPDATE-Befehl ausführen würden, würde es Charlie und Eve von unserer Gästeliste entfernen:

id name response
1 Alice Yes
2 Bob No
4 David Yes

IS NOT NULL Operator in einem Client-Programm

Nun sprechen wir darüber, wie du den IS NOT NULL-Operator in einer realen Welt-Situation mit einem Client-Programm verwenden könntest. Stell dir vor, du schreibst ein Python-Skript, um deine Gästeliste zu verwalten:

import mysql.connector

# Verbinde zur Datenbank
db = mysql.connector.connect(
host="localhost",
user="your_username",
password="your_password",
database="party_planner"
)

cursor = db.cursor()

# Hole alle Gäste, die geantwortet haben
cursor.execute("SELECT * FROM guests WHERE response IS NOT NULL")
responded_guests = cursor.fetchall()

print("Gäste, die geantwortet haben:")
for guest in responded_guests:
print(f"- {guest[1]}: {guest[2]}")

# Zähle Gäste, die nicht geantwortet haben
cursor.execute("SELECT COUNT(*) FROM guests WHERE response IS NULL")
no_response_count = cursor.fetchone()[0]

print(f"\nAnzahl der Gäste, die nicht geantwortet haben: {no_response_count}")

# Schließe die Verbindung
db.close()

Dieses Skript verbindet sich mit deiner Datenbank, holt alle Gäste, die geantwortet haben, gibt ihre Namen und Antworten aus und zählt dann, wie viele Gäste noch nicht geantwortet haben.

Und das war's! Wir haben den Operator IS NOT NULL aus verschiedenen Perspektiven untersucht. Denke daran, in der Welt der Datenbanken kann das Wissen um das, was man nicht weiß (NULL-Werte), genauso wichtig sein wie das Wissen um das, was man weiß. Der Operator IS NOT NULL ist dein treuer Begleiter auf diesem Terrain.

Als wir aufhörten, wurde ich an einen Schüler erinnert, der mir einmal sagte, dass das Verständnis von NULL-Werten wie das Sehen von 'unsichtbarer Tinte' in Datenbanken ist. Ich hoffe, diese Anleitung hat dir geholfen, deine eigene 'NULL-Sicht' zu entwickeln! Weiter üben, bleib neugierig und viel Spaß beim Programmieren!

Credits: Image by storyset