MySQL - NOT Operator

Hallo zusammen, zukünftige Datenbank-Zauberer! Heute tauchen wir in die magische Welt des MySQL NOT-Operators ein. Keine Sorge, wenn ihr neu seid - ich werde euer freundlicher Guide auf diesem Abenteuer sein, und am Ende werdet ihr den NOT-Operator wie ein Profi einsetzen können!

MySQL - NOT Operator

MySQL NOT Operator

Der NOT-Operator ist wie der Rebellen der MySQL-Welt. Es geht darum, zu verneinen, Dinge umzudrehen und zu sagen "nein" zu Bedingungen. Stellt euch vor, ihr seid ein Lehrer (wie ich!) und wollt alle Schüler finden, die ihre Hausaufgaben nicht abgegeben haben. Da kommt NOT ganz praktisch!

Lassen wir mit einem einfachen Beispiel beginnen:

SELECT * FROM students WHERE NOT grade = 'A';

Diese Abfrage wird alle Schüler abrufen, die keine Note A erhalten haben. Es ist so, als ob ihr sagt: "Zeig mir jeden außer den Schülern mit einer A-Note." Sehr cool, oder?

Hier ist noch ein Beispiel:

SELECT * FROM products WHERE NOT price > 100;

Das gibt uns alle Produkte, die nicht mehr als 100 $ kosten. Es ist eine hinterhältige Art zu sagen "Zeige mir Produkte, die 100 $ oder weniger kosten."

NOT mit IN Operator

Nun ein Level höher und NOT mit dem IN-Operator kombinieren. Der IN-Operator ist wie eine VIP-Liste, und NOT IN sagt "jeder, der nicht auf der Liste steht."

SELECT * FROM fruits WHERE name NOT IN ('apple', 'banana', 'orange');

Diese Abfrage zeigt alle Früchte außer Äpfeln, Bananen und Orangen. Es ist, als ob ihr eine Obstschale habt und alles herauspickt, was nicht diese drei Früchte sind.

NOT mit IS NULL Operator

NULL-Werte in Datenbanken sind wie Geister - sie sind da, aber nicht wirklich. Der NOT IS NULL-Operator hilft uns, alle nicht-Geister-Werte zu finden.

SELECT * FROM customers WHERE phone_number IS NOT NULL;

Das findet alle Kunden, die eine Telefonnummer angegeben haben. Es ist, als ob ihr "Marco!" ruft und auf alle wartet, die mit "Polo!" antworten können!

NOT mit LIKE Operator

Der LIKE-Operator wird für Mustererkennung verwendet, und NOT LIKE ist sein freches Gegenstück. Es ist perfekt, um Dinge zu finden, die nicht auf ein bestimmtes Muster passen.

SELECT * FROM books WHERE title NOT LIKE 'The%';

Diese Abfrage findet alle Bücher, deren Titel nicht mit "The" beginnen. Es ist, als ob ihr ein Bücherregal organisiert und alle "The"-Bücher auf eine Seite stellt und alles andere auf die andere Seite.

NOT mit BETWEEN Operator

BETWEEN hilft uns, Werte innerhalb eines Bereichs zu finden, und NOT BETWEEN macht das Gegenteil. Es ist, als ob ihr eine "Nur für Kinder"-Zone einrichtet und dann herausfindet, wer nicht hineindarf.

SELECT * FROM employees WHERE age NOT BETWEEN 25 AND 35;

Das findet alle Mitarbeiter, die entweder jünger als 25 oder älter als 35 sind. Es ist eine großartige Möglichkeit, eure Daten zu segmentieren!

NOT mit UPDATE Anweisung

Der NOT-Operator ist nicht nur für SELECT-Anweisungen. Wir können ihn auch in UPDATE-Anweisungen verwenden! Sehen wir uns ein Beispiel an:

UPDATE inventory SET in_stock = 0 WHERE NOT product_id IN (101, 102, 103);

Diese Abfrage aktualisiert den Bestand, indem alle Produkte als nicht vorrätig gesetzt werden, außer den Produkten mit den IDs 101, 102 und 103. Es ist, als ob ihr euren Laden leer macht, aber einige besondere Artikel behält.

NOT mit DELETE Anweisung

Wir können NOT auch in DELETE-Anweisungen verwenden. Seid vorsichtig mit dieser - sie ist kraftvoll!

DELETE FROM old_records WHERE NOT date_created > '2020-01-01';

Das löscht alle vor dem 1. Januar 2020 erstellten Aufzeichnungen. Es ist, als ob ihr einen großen Frühjahrsputz macht und nur die neueren Dinge behält.

NOT Operator in einem Client-Programm

Nun schauen wir, wie wir den NOT-Operator in einem Client-Programm verwenden können. Hier ist ein einfaches Python-Beispiel mit dem MySQL Connector:

import mysql.connector

# Verbindung zur Datenbank herstellen
cnx = mysql.connector.connect(user='your_username', password='your_password',
host='127.0.0.1', database='your_database')
cursor = cnx.cursor()

# Abfrage mit NOT ausführen
query = "SELECT * FROM students WHERE NOT grade = 'F'"
cursor.execute(query)

# Ergebnisse abrufen und ausgeben
for (id, name, grade) in cursor:
print(f"Student {id}: {name} - Note: {grade}")

# Verbindung schließen
cursor.close()
cnx.close()

Dieses Skript verbindet sich mit einer MySQL-Datenbank, führt eine Abfrage aus, um alle Schüler zu finden, die keine Note F erhalten haben, und gibt ihre Informationen aus. Es ist, als ob ihr am Zeugnisabiturtag nur für die Schüler, die bestanden haben, einen Bericht erstellt!

Und das war's, Leute! Ihr habt gerade eine wilde Tour durch den MySQL NOT-Operator gemacht. Denkt daran, in der Welt der Datenbanken ist es manchmal genauso wichtig zu wissen, was ihr nicht wollt, wie was ihr wollt. Der NOT-Operator ist euer treuer Begleiter in diesen Situationen.

Weiters üben, neugierig bleiben, und bald werdet ihr NOTing durch Datenbanken wie ein Profi! Frohes Abfragen!

Credits: Image by storyset