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!

SQL - EXCEPT Operator

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:

  1. Keine Manager sind
  2. Zwischen 25 und 40 Jahre alt sind
  3. In den Abteilungen IT oder HR nicht arbeiten
  4. '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