NOT gehört in SQL zu den logischen Ope­ra­to­ren und er­mög­licht ein ef­fi­zi­en­tes, präzises Filtern von Such­ergeb­nis­sen nach dem Aus­schluss­ver­fah­ren. Indem du mit dem NOT-Operator Daten unter be­stimm­ten Be­din­gun­gen aus­schließt, be­schränkst du deine Er­geb­nis­se auf relevante In­for­ma­tio­nen.

Was ist der SQL NOT-Operator?

SQL NOT zählt zusammen mit SQL AND und SQL OR zu den logischen SQL-Ope­ra­to­ren, mit denen du Be­din­gun­gen und Kriterien für Da­ten­ab­fra­gen de­fi­nierst. Während die Ope­ra­to­ren AND und OR Da­ten­sät­ze filtern, die alle oder min­des­tens eine an­ge­ge­be­ne Bedingung erfüllen, basiert der NOT-Operator auf dem Aus­schluss­ver­fah­ren. Du schließt in deinem Such­ergeb­nis alle In­for­ma­tio­nen in aus­ge­wähl­ten Da­ten­sät­zen aus, die eine de­fi­nier­te Bedingung nicht erfüllen.

Besonders häufig kommt SQL NOT in Ver­bin­dung 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-Ope­ra­to­ren kom­bi­nie­ren. Auf diese Weise lassen sich ir­rele­van­te Er­geb­nis­se filtern, die entweder alle de­fi­nier­ten Be­din­gun­gen nicht erfüllen (AND) oder min­des­tens eine der genannten Be­din­gun­gen nicht erfüllen (OR).

Un­ter­schied zwischen SQL NOT, AND und OR

Die SQL-Ope­ra­to­ren NOT, AND und OR un­ter­schei­den sich kurz zu­sam­men­ge­fasst wie folgt:

SQL NOT SQL AND SQL OR
Gibt nur Da­ten­sät­ze aus, die eine de­fi­nier­te Bedingung nicht erfüllen Gibt Da­ten­sät­ze aus, die alle vor­de­fi­nier­ten Such­kri­te­ri­en erfüllen Liefert alle In­for­ma­tio­nen, die min­des­tens eine der de­fi­nier­ten Be­din­gun­gen erfüllen
Negiert eine Bedingung, die für die Suche nicht relevant ist Kom­bi­niert Be­din­gun­gen, um die Suche auf In­for­ma­tio­nen ein­zu­en­gen, die mehreren Such­kri­te­ri­en ent­spre­chen Erweitert die Such­ergeb­nis­se auf Daten, die eine von mehreren Kriterien erfüllen
Tipp

Du möchtest dich in­ten­si­ver mit SQL aus­ein­an­der­set­zen, verfügst bisher jedoch nur über geringe Kennt­nis­se? Dann hilft dir unsere SQL-Ein­füh­rung mit Bei­spie­len beim schnellen Einstieg in die Da­ten­bank­spra­che.

Die Syntax des NOT-Operators erklärt

Die einfache NOT-Syntax sieht wie folgt aus:

SELECT  *
FROM Tabelle
WHERE  NOT  (Suchbedingung)
sql

Diese Parameter kommen zum Einsatz:

  • SELECT: Wählt Spalten aus, die für deine Suche relevant sind. Mit einem Asterisk * durch­suchst du die gesamte aus­ge­wähl­te Tabelle inklusive aller zu­ge­hö­ri­gen Spalten. Du kannst auch einzelne Spalten mit dem je­wei­li­gen Primär- oder Fremd­schüs­sel festlegen.
  • FROM: Definiert die Tabelle, die du durch­su­chen möchtest.
  • WHERE: Definiert Be­din­gun­gen mithilfe von Ope­ra­to­ren wie SQL NOT, um die Da­ten­ab­fra­ge ein­zu­gren­zen.
  • NOT: Legt in Kom­bi­na­ti­on mit WHERE die Negation einer Bedingung fest, die Such­ergeb­nis­se nicht erfüllen sollen.

Möchtest du deine Da­ten­ab­fra­ge prä­zi­sie­ren, bietet sich eine Kom­bi­na­ti­on mit AND oder OR an.

SQL NOT: Kom­bi­na­ti­on mit AND

In Kom­bi­na­ti­on mit AND sollen Er­geb­nis­se, die beide Such­be­din­gun­gen erfüllen, nicht Teil der Er­geb­nis­men­ge sein.

SELECT  *
FROM  Tabelle
WHERE  NOT  (Suchbedingung1  AND  Suchbedingung2)
sql

SQL NOT: Kom­bi­na­ti­on mit OR

In Kom­bi­na­ti­on mit OR kannst du Daten aus­schlie­ßen, die min­des­tens eine der Such­be­din­gun­gen nicht erfüllen.

SELECT  *
FROM  Tabelle
WHERE  NOT  (Suchbedingung1  OR  Suchbedingung2)
sql

Für diese An­wen­dungs­mög­lich­kei­ten eignet sich der NOT-Operator

Die Ein­satz­mög­lich­kei­ten für Abfragen und Suchen mit NOT sind fast gren­zen­los. Du kannst zum Beispiel:

  • Daten von Kund:innen, Be­stel­lun­gen oder Produkten nach Region, Jahr, Kategorie, Preis oder Ei­gen­schaf­ten aus­schlie­ßen
  • Da­ten­sät­ze igno­rie­ren, die ungültige oder fehlende Werte enthalten
  • Fi­nanz­da­ten filtern, die bestimmte Trans­ak­ti­ons­kri­te­ri­en nicht erfüllen
  • Daten von An­ge­stell­ten aus­schlie­ßen, die nicht zu einer be­stimm­ten Abteilung gehören
  • Bewerber:innen her­aus­fil­tern, die eine bestimmte Qua­li­fi­ka­ti­on nicht erfüllen

Prak­ti­sche Beispiele für den SQL NOT-Operator

Je nach An­wen­dungs­fall variiert die Suche mit dem NOT-Operator stark – abhängig davon, wie du die Bedingung mit der WHERE-Klausel, dem NOT-Operator und weiteren op­tio­na­len Ope­ra­to­ren festlegst. Zur Ver­an­schau­li­chung haben wir drei prak­ti­sche Beispiele vor­be­rei­tet.

Aus­schlie­ßen von An­ge­stell­ten nach Region

Du möchtest in einer Tabelle „An­ge­stell­te“ nur In­for­ma­tio­nen zu Team­mit­glie­dern anzeigen lassen, die nicht in Deutsch­land wohnen. Hierzu de­fi­nierst du mit der Spalte „Land“, der WHERE-Klausel, dem NOT-Operator und dem Ver­gleichs­ope­ra­tor = die Bedingung wie folgt:

SELECT  *
FROM  Kunden
WHERE  NOT  (Land  =  'Deutschland')
sql

Ähnlich gehst du vor, wenn du in einer Pro­duk­te­ta­bel­le nur Artikel anzeigen möchtest, die nicht mehr auf Lager sind:

SELECT  *
FROM  Produkte
WHERE  NOT  (Lagerbestand  >  0)
sql

Filtern von Kun­den­grup­pen

In einer Tabelle „Kunden“ suchst du nach einer be­stimm­ten Gruppe, die vor­de­fi­nier­te Be­din­gun­gen nicht erfüllt. Diese Personen sollen in diesem Beispiel min­des­tens 30 Jahre alt sein und nicht in Berlin wohnen, daher kommen zu­sätz­lich zu NOT auch Ver­gleichs­ope­ra­to­ren und der AND-Operator zum Einsatz.

SELECT  *
FROM  Kunden
WHERE  NOT  (Alter  <  30  AND  Stadt  =  'Berlin')
sql

Filtern von fehlenden Qua­li­fi­ka­tio­nen bei Be­wer­bun­gen

Du möchtest in einer Tabelle „Bewerber:innen“ bestimmte Er­geb­nis­se aus­schlie­ßen, die spe­zi­fi­sche Qua­li­fi­ka­tio­nen wie „Bachelor“ oder „Be­rufs­er­fah­rung“ nicht erfüllen. Die Suche sieht so aus:

SELECT  *
FROM  Bewerberinnen und Bewerber
WHERE  NOT  (Abschluss  =  ´Bachelor´  OR  Berufserfahrung  <  3)
sql

Al­ter­na­ti­ven zu SQL NOT

Eine direkt iden­ti­sche Funktion gibt es nicht, da der NOT-Operator gezielt Such­kri­te­ri­en negiert. Da SQL NOT jedoch ein viel­sei­ti­ger SQL-Operator ist, lässt er sich für präzise Abfragen mit ver­schie­de­nen SQL-Befehlen kom­bi­nie­ren. Dazu zählen SQL JOIN oder SQL HAVING-Ag­gre­gat­funk­tio­nen wie SQL SUM oder AVG, Ver­gleichs­ope­ra­to­ren wie = oder > sowie Befehle wie SQL LIKE. Um das Aus­schluss­ver­fah­ren auf mehrere Be­din­gun­gen ein­zu­gren­zen oder zu erweitern, bieten sich zudem die logischen Ope­ra­to­ren AND und OR an.

Zum Hauptmenü