SQL - Operator NICHT
Hallo da draußen, angehende SQL-Enthusiasten! Ich freue mich sehr, euch durch die faszinierende Welt der SQL-Operatoren zu führen, insbesondere den Operator NICHT. Als jemand, der seit Jahren SQL unterrichtet, kann ich euch versichern, dass das Beherrschen dieses Operators eure Datenbankabfrageskills erheblich verbessern wird. Also, tauchen wir ein!
Der SQL NICHT Operator
Der NICHT Operator ist wie dieser Freund, der immer alles, was du sagst, widerspricht. Er wird verwendet, um eine Bedingung in SQL zu verneinen, indem er das Ergebnis eines booleschen Ausdrucks umkehrt. Wenn du NICHT verwendest, sagst du im Grunde: "Gib mir alles, was nicht dieser Bedingung entspricht."
Fangen wir mit einem einfachen Beispiel an. Stellen wir uns eine Tabelle namens students
mit den Spalten id
, name
und age
vor.
SELECT * FROM students WHERE NOT age = 20;
Diese Abfrage wird alle Schüler zurückgeben, die nicht 20 Jahre alt sind. Es ist, als ob man sagt: "Zeig mir alle Schüler, aber schließe die 20-Jährigen aus."
Hier ist noch ein Beispiel:
SELECT * FROM students WHERE NOT name = 'John';
Dies gibt uns alle Schüler, deren Name nicht John ist. Poor John, immer ausgeschlossen!
SQL NICHT Operator mit LIKE
Nun, lassen wir es interessanter werden, indem wir NICHT mit dem Operator LIKE kombinieren. LIKE wird für Musterabgleiche verwendet, und wenn es mit NICHT kombiniert wird, wird es zu einem mächtigen Werkzeug für die Ausschließung basierend auf Mustern.
SELECT * FROM students WHERE name NOT LIKE 'A%';
Diese Abfrage gibt alle Schüler zurück, deren Namen nicht mit 'A' beginnen. Es ist, als ob man eine Party organisiert und sagt: "Jeder ist eingeladen, außer diejenigen, deren Namen mit A beginnen!" (Entschuldigung, Anna und Alex!)
Hier ist ein weiteres spaßiges Beispiel:
SELECT * FROM students WHERE email NOT LIKE '%@gmail.com';
Dies gibt uns alle Schüler, die keine Gmail verwenden. Vielleicht sind sie Hipster, die lieber weniger bekannte E-Mail-Anbieter bevorzugen!
SQL NICHT Operator mit IN
Der Operator IN wird verwendet, um mehrere Werte in einer WHERE-Klausel anzugeben. Wenn er mit NICHT kombiniert wird, ermöglicht er die Ausschließung einer Liste von Werten.
SELECT * FROM students WHERE age NOT IN (18, 19, 20);
Diese Abfrage gibt alle Schüler zurück, die nicht 18, 19 oder 20 Jahre alt sind. Es ist, als ob man sagt: "Zeig mir jeden, außer die Teenager und jungen Erwachsenen!"
Hier ist ein weiteres Beispiel:
SELECT * FROM courses WHERE department NOT IN ('Math', 'Physics', 'Chemistry');
Dies gibt uns alle Kurse, die nicht in den Fachbereichen Mathematik, Physik oder Chemie liegen. Perfekt für diejenigen, die harte Wissenschaften vermeiden möchten!
SQL NICHT Operator mit IS NULL
NULL-Werte in SQL repräsentieren fehlende oder unbekannte Informationen. Der Operator IS NULL wird verwendet, um auf NULL-Werte zu testen, und wenn er mit NICHT kombiniert wird, hilft er uns, nicht-NULL-Werte zu finden.
SELECT * FROM students WHERE phone_number IS NOT NULL;
Diese Abfrage gibt alle Schüler zurück, die eine Telefonnummer angegeben haben. Es ist, als ob man sagt: "Zeig mir alle Schüler, die ich actually anrufen kann!"
Hier ist ein weiteres praktisches Beispiel:
SELECT * FROM assignments WHERE submission_date IS NOT NULL;
Dies gibt uns alle Aufgaben zurück, die eingereicht wurden. Keine Prokrastinierer in diesem Ergebnissebnis!
SQL NICHT Operator mit BETWEEN
Der Operator BETWEEN wählt Werte innerhalb eines bestimmten Bereichs aus. Wenn er mit NICHT verwendet wird, wählt er Werte außerhalb dieses Bereichs aus.
SELECT * FROM products WHERE price NOT BETWEEN 10 AND 20;
Diese Abfrage gibt alle Produkte zurück, die weniger als 10 oder mehr als 20 kosten. Es ist perfekt für Budget-Shopper und Luxusjäger gleichermaßen!
Ein weiteres Beispiel:
SELECT * FROM events WHERE event_date NOT BETWEEN '2023-01-01' AND '2023-12-31';
Dies gibt uns alle Veranstaltungen, die im Jahr 2023 nicht stattfinden. Zeitreisende, beachtet dies!
SQL NICHT Operator mit EXISTS
Der Operator EXISTS wird verwendet, um die Existenz eines jeden Eintrags in einer Unterabfrage zu testen. Wenn er mit NICHT kombiniert wird, überprüft er das Fehlen jeglicher Einträge, die die Unterabfrage erfüllen.
SELECT * FROM customers c
WHERE NOT EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.id);
Diese komplex aussehende Abfrage tut etwas Einfaches: Sie gibt alle Kunden zurück, die keine Bestellungen aufgegeben haben. Es ist, als ob man die Schaufenster-Shopper in deiner Datenbank findet!
Hier ist ein weiteres Beispiel:
SELECT * FROM employees e
WHERE NOT EXISTS (SELECT 1 FROM managers m WHERE m.employee_id = e.id);
Dies gibt uns alle Mitarbeiter zurück, die keine Manager sind. Es ist eine großartige Möglichkeit, die Arbeiterbienen in deiner Organisation zu finden!
Um alle NICHT Operator Methoden, die wir besprochen haben, zusammenzufassen, hier ist eine praktische Tabelle:
Methode | Beschreibung | Beispiel |
---|---|---|
NICHT mit einfacher Vergleiche | Verneint eine einfache Bedingung | WHERE NOT age = 20 |
NICHT mit LIKE | Schließt Muster aus | WHERE name NOT LIKE 'A%' |
NICHT mit IN | Schließt eine Liste von Werten aus | WHERE age NOT IN (18, 19, 20) |
NICHT mit IS NULL | Findet nicht-NULL-Werte | WHERE phone_number IS NOT NULL |
NICHT mit BETWEEN | Schließt einen Bereich aus | WHERE price NOT BETWEEN 10 AND 20 |
NICHT mit EXISTS | Überprüft das Fehlen in einer Unterabfrage | WHERE NOT EXISTS (SELECT 1 FROM orders o WHERE o.customer_id = c.id) |
Und das war's, Leute! Wir haben den NICHT Operator in all seiner Pracht erkundet. Denkt daran, in SQL wie im Leben, ist es manchmal genauso wichtig zu wissen, was man nicht will, wie was man will. Frohes Abfragen und möge eure Ergebnisse immer NICHT NULL sein!
Credits: Image by storyset