SQL NOT: Punktgenau filtern dank cleverem Ausschluss
NOT gehört in SQL zu den logischen Operatoren und ermöglicht ein effizientes, präzises Filtern von Suchergebnissen nach dem Ausschlussverfahren. Indem du mit dem NOT-Operator Daten unter bestimmten Bedingungen ausschließt, beschränkst du deine Ergebnisse auf relevante Informationen.
Was ist der SQL NOT-Operator?
SQL NOT zählt zusammen mit SQL AND und SQL OR zu den logischen SQL-Operatoren, mit denen du Bedingungen und Kriterien für Datenabfragen definierst. Während die Operatoren AND und OR Datensätze filtern, die alle oder mindestens eine angegebene Bedingung erfüllen, basiert der NOT-Operator auf dem Ausschlussverfahren. Du schließt in deinem Suchergebnis alle Informationen in ausgewählten Datensätzen aus, die eine definierte Bedingung nicht erfüllen.
Besonders häufig kommt SQL NOT in Verbindung mit SQL SELECT, SQL WHERE und SQL HAVING zum Einsatz. Um die Suche so präzise wie möglich zu gestalten, kannst du den NOT-Operator auch mit den AND- und OR-Operatoren kombinieren. Auf diese Weise lassen sich irrelevante Ergebnisse filtern, die entweder alle definierten Bedingungen nicht erfüllen (AND) oder mindestens eine der genannten Bedingungen nicht erfüllen (OR).
Unterschied zwischen SQL NOT, AND und OR
Die SQL-Operatoren NOT, AND und OR unterscheiden sich kurz zusammengefasst wie folgt:
SQL NOT |
SQL AND |
SQL OR |
|---|---|---|
| Gibt nur Datensätze aus, die eine definierte Bedingung nicht erfüllen | Gibt Datensätze aus, die alle vordefinierten Suchkriterien erfüllen | Liefert alle Informationen, die mindestens eine der definierten Bedingungen erfüllen |
| Negiert eine Bedingung, die für die Suche nicht relevant ist | Kombiniert Bedingungen, um die Suche auf Informationen einzuengen, die mehreren Suchkriterien entsprechen | Erweitert die Suchergebnisse auf Daten, die eine von mehreren Kriterien erfüllen |
Du möchtest dich intensiver mit SQL auseinandersetzen, verfügst bisher jedoch nur über geringe Kenntnisse? Dann hilft dir unsere SQL-Einführung mit Beispielen beim schnellen Einstieg in die Datenbanksprache.
Die Syntax des NOT-Operators erklärt
Die einfache NOT-Syntax sieht wie folgt aus:
SELECT *
FROM Tabelle
WHERE NOT (Suchbedingung)sqlDiese Parameter kommen zum Einsatz:
SELECT: Wählt Spalten aus, die für deine Suche relevant sind. Mit einem Asterisk*durchsuchst du die gesamte ausgewählte Tabelle inklusive aller zugehörigen Spalten. Du kannst auch einzelne Spalten mit dem jeweiligen Primär- oder Fremdschüssel festlegen.FROM: Definiert die Tabelle, die du durchsuchen möchtest.WHERE: Definiert Bedingungen mithilfe von Operatoren wie SQLNOT, um die Datenabfrage einzugrenzen.NOT: Legt in Kombination mitWHEREdie Negation einer Bedingung fest, die Suchergebnisse nicht erfüllen sollen.
Möchtest du deine Datenabfrage präzisieren, bietet sich eine Kombination mit AND oder OR an.
SQL NOT: Kombination mit AND
In Kombination mit AND sollen Ergebnisse, die beide Suchbedingungen erfüllen, nicht Teil der Ergebnismenge sein.
SELECT *
FROM Tabelle
WHERE NOT (Suchbedingung1 AND Suchbedingung2)sqlSQL NOT: Kombination mit OR
In Kombination mit OR kannst du Daten ausschließen, die mindestens eine der Suchbedingungen nicht erfüllen.
SELECT *
FROM Tabelle
WHERE NOT (Suchbedingung1 OR Suchbedingung2)sqlFür diese Anwendungsmöglichkeiten eignet sich der NOT-Operator
Die Einsatzmöglichkeiten für Abfragen und Suchen mit NOT sind fast grenzenlos. Du kannst zum Beispiel:
- Daten von Kund:innen, Bestellungen oder Produkten nach Region, Jahr, Kategorie, Preis oder Eigenschaften ausschließen
- Datensätze ignorieren, die ungültige oder fehlende Werte enthalten
- Finanzdaten filtern, die bestimmte Transaktionskriterien nicht erfüllen
- Daten von Angestellten ausschließen, die nicht zu einer bestimmten Abteilung gehören
- Bewerber:innen herausfiltern, die eine bestimmte Qualifikation nicht erfüllen
Praktische Beispiele für den SQL NOT-Operator
Je nach Anwendungsfall variiert die Suche mit dem NOT-Operator stark – abhängig davon, wie du die Bedingung mit der WHERE-Klausel, dem NOT-Operator und weiteren optionalen Operatoren festlegst. Zur Veranschaulichung haben wir drei praktische Beispiele vorbereitet.
Ausschließen von Angestellten nach Region
Du möchtest in einer Tabelle „Angestellte“ nur Informationen zu Teammitgliedern anzeigen lassen, die nicht in Deutschland wohnen. Hierzu definierst du mit der Spalte „Land“, der WHERE-Klausel, dem NOT-Operator und dem Vergleichsoperator = die Bedingung wie folgt:
SELECT *
FROM Kunden
WHERE NOT (Land = 'Deutschland')sqlÄhnlich gehst du vor, wenn du in einer Produktetabelle nur Artikel anzeigen möchtest, die nicht mehr auf Lager sind:
SELECT *
FROM Produkte
WHERE NOT (Lagerbestand > 0)sqlFiltern von Kundengruppen
In einer Tabelle „Kunden“ suchst du nach einer bestimmten Gruppe, die vordefinierte Bedingungen nicht erfüllt. Diese Personen sollen in diesem Beispiel mindestens 30 Jahre alt sein und nicht in Berlin wohnen, daher kommen zusätzlich zu NOT auch Vergleichsoperatoren und der AND-Operator zum Einsatz.
SELECT *
FROM Kunden
WHERE NOT (Alter < 30 AND Stadt = 'Berlin')sqlFiltern von fehlenden Qualifikationen bei Bewerbungen
Du möchtest in einer Tabelle „Bewerber:innen“ bestimmte Ergebnisse ausschließen, die spezifische Qualifikationen wie „Bachelor“ oder „Berufserfahrung“ nicht erfüllen. Die Suche sieht so aus:
SELECT *
FROM Bewerberinnen und Bewerber
WHERE NOT (Abschluss = ´Bachelor´ OR Berufserfahrung < 3)sqlAlternativen zu SQL NOT
Eine direkt identische Funktion gibt es nicht, da der NOT-Operator gezielt Suchkriterien negiert. Da SQL NOT jedoch ein vielseitiger SQL-Operator ist, lässt er sich für präzise Abfragen mit verschiedenen SQL-Befehlen kombinieren. Dazu zählen SQL JOIN oder SQL HAVING-Aggregatfunktionen wie SQL SUM oder AVG, Vergleichsoperatoren wie = oder > sowie Befehle wie SQL LIKE. Um das Ausschlussverfahren auf mehrere Bedingungen einzugrenzen oder zu erweitern, bieten sich zudem die logischen Operatoren AND und OR an.