SQL - EXCEPT Operator: A Comprehensive Guide for Beginners
Hallo dort, angehende SQL-Enthusiasten! Heute machen wir uns auf eine aufregende Reise in die Welt von SQL, wobei wir uns insbesondere auf den Operator EXCEPT konzentrieren. Keine Sorge, wenn Sie neu im Programmieren sind – ich werde Ihr freundlicher Guide sein und alles Schritt für Schritt erklären. Also, tauchen wir ein!
Der SQL EXCEPT Operator
Was ist der EXCEPT Operator?
Der EXCEPT Operator ist wie eine magische Zauberstab in SQL, der es uns ermöglicht, zwei Ergebnisse zu vergleichen und nur die eindeutigen Zeilen aus dem ersten Satz zurückzugeben, die nicht im zweiten Satz vorhanden sind. Es ist so, als ob man die Differenz zwischen zwei Gruppen von Dingenfindet.
Stellen Sie sich vor, Sie haben zwei Körbe mit Früchten. Der erste Korb hat Äpfel, Orangen und Bananen. Der zweite Korb hat Orangen und Birnen. Wenn wir den EXCEPT Operator verwenden, würden wir nur Äpfel und Bananen erhalten – die Früchte, die im ersten Korb sind, aber nicht im zweiten.
Grundlegende Syntax
So schreiben wir typischerweise eine EXCEPT-Anweisung:
SELECT spalte1, spalte2, ...
FROM tabelle1
EXCEPT
SELECT spalte1, spalte2, ...
FROM tabelle2;
Ein einfaches Beispiel
Angenommen, wir haben zwei Tabellen: employees
und managers
. Wir möchten alle Mitarbeiter finden, die keine Manager sind.
SELECT employee_id, name
FROM employees
EXCEPT
SELECT employee_id, name
FROM managers;
Diese Abfrage gibt alle Mitarbeiter zurück, die nicht in der managers-Tabelle sind. quite cool, oder?
EXCEPT mit BETWEEN Operator
Nun, lassen Sie uns das ein wenig aufpeppen, indem wir EXCEPT mit dem BETWEEN Operator kombinieren. Der BETWEEN Operator ermöglicht es uns, Werte innerhalb eines bestimmten Bereichs auszuwählen.
Beispiel: Finden von Nicht-Seniormitarbeitern
Angenommen, wir möchten Mitarbeiter finden, die nicht im Senior-Alter (sagen wir 50-65) sind.
SELECT employee_id, name, age
FROM employees
EXCEPT
SELECT employee_id, name, age
FROM employees
WHERE age BETWEEN 50 AND 65;
Diese Abfrage gibt uns alle Mitarbeiter zurück, die nicht zwischen 50 und 65 Jahre alt sind. Es ist so, als ob man die Jungspunde und die Super-Senioren in unserem Unternehmen findet!
EXCEPT mit IN Operator
Der IN Operator ermöglicht es uns, mehrere Werte in einer WHERE-Klausel anzugeben. Wenn man ihn mit EXCEPT kombiniert, kann er sehr mächtig sein.
Beispiel: Mitarbeiter, die nicht in bestimmten Abteilungen sind
Lassen Sie uns Mitarbeiter finden, die nicht in den Abteilungen IT, HR oder Finance arbeiten.
SELECT employee_id, name, department
FROM employees
EXCEPT
SELECT employee_id, name, department
FROM employees
WHERE department IN ('IT', 'HR', 'Finance');
Diese Abfrage gibt alle Mitarbeiter zurück, die in Abteilungen außer IT, HR und Finance arbeiten. Es ist, als ob man die einzigartigen Schneeflocken in unserem Unternehmen findet!
EXCEPT mit LIKE Operator
Der LIKE Operator wird in einer WHERE-Klausel verwendet, um nach einem spezifischen Muster in einer Spalte zu suchen. Wenn man ihn mit EXCEPT kombiniert, kann man einige ziemlich coole Dinge tun.
Beispiel: Mitarbeiter, deren Titel kein 'Manager' enthält
Lassen Sie uns alle Mitarbeiter finden, deren Berufsbezeichnung das Wort 'Manager' nicht enthält.
SELECT employee_id, name, job_title
FROM employees
EXCEPT
SELECT employee_id, name, job_title
FROM employees
WHERE job_title LIKE '%Manager%';
Diese Abfrage gibt uns alle Mitarbeiter zurück, deren Berufsbezeichnungen kein 'Manager' enthalten. Es ist, als ob man alle Arbeiterbienen in unserem Unternehmensstock finde!
Alles zusammenfügen
Nun, da wir über diese verschiedenen Operatoren erfahren haben, lassen Sie uns sie in einem komplexeren Beispiel kombinieren.
Beispiel: Komplexer Mitarbeiter-Abfrage
Lassen Sie uns alle Mitarbeiter finden, die:
- Keine Manager sind
- Zwischen 25 und 40 Jahre alt sind
- In den Abteilungen IT oder HR nicht arbeiten
- 'Specialist' nicht in ihrem Berufsbezeichnung haben
SELECT employee_id, name, age, department, job_title
FROM employees
EXCEPT
SELECT employee_id, name, age, department, job_title
FROM employees
WHERE employee_id IN (SELECT employee_id FROM managers)
OR age NOT BETWEEN 25 AND 40
OR department IN ('IT', 'HR')
OR job_title LIKE '%Specialist%';
Diese Abfrage mag auf den ersten Blick einschüchternd aussehen, aber wenn man sie auseinandernimmt, ist es nur die Kombination aller Konzepte, die wir gelernt haben!
Gemeinsame EXCEPT Methoden
Hier ist eine Tabelle, die die Methoden zusammenfasst, die wir besprochen haben:
Methode | Beschreibung | Beispiel |
---|---|---|
Basic EXCEPT | Findet Zeilen im ersten Satz, die nicht im zweiten Satz sind | SELECT * FROM A EXCEPT SELECT * FROM B |
EXCEPT mit BETWEEN | Schließt Zeilen aus einem bestimmten Bereich aus | ... EXCEPT ... WHERE col BETWEEN x AND y |
EXCEPT mit IN | Schließt Zeilen aus, die bestimmten Werten entsprechen | ... EXCEPT ... WHERE col IN (a, b, c) |
EXCEPT mit LIKE | Schließt Zeilen aus, die einem Muster entsprechen | ... EXCEPT ... WHERE col LIKE '%pattern%' |
Erinnern Sie sich daran, Übung macht den Meister! Versuchen Sie, eigene Abfragen mit diesen Operatoren zu schreiben. Haben Sie keine Angst vor Fehlern – das ist, wie wir lernen und wachsen.
Ich hoffe, diese Anleitung hat den EXCEPT Operator und seine Freunde für Sie enträtselt. SQL mag zuerst einschüchternd erscheinen, aber mit der Zeit und ein bisschen Übung werden Sie komplexe Abfragen wie ein Profi schreiben. Weiter codieren, bleiben neugierig und vor allem, haben Sie Spaß mit SQL!
Credits: Image by storyset