NOT zählt 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 Sie mit dem NOT-Operator Daten unter be­stimm­ten Be­din­gun­gen aus­schlie­ßen, be­schrän­ken Sie Ihre 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 Sie Be­din­gun­gen und Kriterien für Da­ten­ab­fra­gen for­mu­lie­ren. 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. Sie schließen in Ihrem 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, können Sie 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 im Überblick

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

Sie möchten sich in­ten­si­ver mit SQL aus­ein­an­der­set­zen, verfügen bisher jedoch nur über geringe Kennt­nis­se? Dann hilft Ihnen 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 Ihre Suche relevant sind. Mit einem Asterisk * durch­su­chen Sie die gesamte aus­ge­wähl­te Tabelle inklusive aller zu­ge­hö­ri­gen Spalten. Sie können auch einzelne Spalten mit dem je­wei­li­gen Primär- oder Fremd­schüs­sel festlegen.
  • FROM: Definiert die Tabelle, die Sie durch­su­chen möchten.
  • 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öchten Sie Ihre 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 können Sie 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 nahezu un­be­grenzt. Sie können zum Beispiel:

  • Daten von Kundinnen und Kunden, 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 über ungültige oder fehlende Werte verfügen
  • Fi­nanz­da­ten, die bestimmte Trans­ak­ti­ons­kri­te­ri­en nicht erfüllen, filtern
  • Daten von An­ge­stell­ten aus­schlie­ßen, die nicht zu einer be­stimm­ten Abteilung gehören
  • Be­wer­be­rin­nen und Bewerber 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 kann die Suche mit dem NOT-Operator stark variieren – abhängig davon, wie Sie die Bedingung mit der WHERE-Klausel, dem NOT-Operator und weiteren op­tio­na­len Ope­ra­to­ren de­fi­nie­ren. Zur Ver­an­schau­li­chung bieten wir Ihnen drei prak­ti­sche An­wen­dungs­bei­spie­le.

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

Sie möchten in einer Tabelle „An­ge­stell­te“ nur In­for­ma­tio­nen zu An­ge­stell­ten anzeigen lassen, die nicht in Deutsch­land leben. Hierzu legen Sie mit der Spalte „Land“, der WHERE-Klausel, dem NOT-Operator und dem Ver­gleichs­ope­ra­tor = die Bedingung wie folgt fest:

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

Ähnlich gehen Sie bei­spiels­wei­se vor, wenn Sie in einer Pro­duk­te­ta­bel­le nur Produkte anzeigen möchten, die nicht mehr auf Lager sind:

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

Filtern von Kun­den­grup­pen

In einer Tabelle „Kunden“ suchen Sie nach einer be­stimm­ten Kun­den­grup­pe, die vor­de­fi­nier­te Be­din­gun­gen nicht erfüllen. Sie sollen in diesem Beispiel nicht jünger als 30 sein und nicht in Berlin leben, 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 Bewerbung

Sie möchten in einer Tabelle „Be­wer­be­rin­nen und Bewerber“ 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 wie folgt aus:

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

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

Eine Al­ter­na­ti­ve mit iden­ti­scher Funktion gibt es nicht, da der NOT-Operator sich durch die Negation von Such­kri­te­ri­en aus­zeich­net. Da es sich bei SQL NOT um einen viel­sei­ti­gen SQL-Operator handelt, lässt er sich jedoch 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 und Ope­ra­to­ren 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ü