# SQL NOT – Präzise Suche mit Ausschlusskriterien

`NOT` zählt in SQL zu den logischen Operatoren und ermöglicht ein **effizientes, präzises Filtern von Suchergebnissen nach dem Ausschlussverfahren**. Indem Sie mit dem `NOT`-Operator Daten unter bestimmten Bedingungen ausschließen, beschränken Sie Ihre Ergebnisse auf relevante Informationen.

## Was ist der SQL `NOT`-Operator?

SQL NOT zählt zusammen mit SQL `AND` und [SQL OR](https://www.ionos.com/de-ch/digitalguide/server/konfiguration/sql-or/) zu den logischen SQL-Operatoren, mit denen Sie Bedingungen und Kriterien für Datenabfragen formulieren. 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**. Sie schließen in Ihrem 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, können Sie 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` im Überblick

Die SQL-Operatoren `NOT`, `AND` und `OR` unterscheiden sich kurz zusammengefasst wie folgt:

<table>
  <thead>
    <tr>
      <th>SQL `NOT`</th>
      <th>SQL `AND`</th>
      <th>SQL `OR`</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>Gibt nur Datensätze aus, die eine definierte Bedingung nicht erfüllen</td>
      <td>Gibt Datensätze aus, die alle vordefinierten Suchkriterien erfüllen</td>
      <td>Liefert alle Informationen, die mindestens eine der definierten Bedingungen erfüllen</td>
    </tr>
    <tr>
      <td>Negiert eine Bedingung, die für die Suche nicht relevant ist</td>
      <td>Kombiniert Bedingungen, um die Suche auf Informationen einzuengen, die mehreren Suchkriterien entsprechen</td>
      <td>Erweitert die Suchergebnisse auf Daten, die eine von mehreren Kriterien erfüllen</td>
    </tr>
  </tbody>
</table>

Tipp Sie möchten sich intensiver mit [SQL](https://www.ionos.com/de-ch/digitalguide/server/knowhow/was-ist-sql/) auseinandersetzen, verfügen bisher jedoch nur über geringe Kenntnisse? Dann hilft Ihnen unsere [SQL-Einführung mit Beispielen](https://www.ionos.com/de-ch/digitalguide/server/konfiguration/sql-einfuehrung-mit-beispielen/) beim schnellen Einstieg in die Datenbanksprache.

## Die Syntax des `NOT`-Operators erklärt

Die einfache `NOT`-Syntax sieht wie folgt aus:

```sql
SELECT  *
FROM Tabelle
WHERE  NOT  (Suchbedingung)
```

Diese Parameter kommen zum Einsatz:

- `SELECT`: Wählt Spalten aus, die für Ihre Suche relevant sind. Mit einem Asterisk `*` durchsuchen Sie die gesamte ausgewählte Tabelle inklusive aller zugehörigen Spalten. Sie können auch einzelne Spalten mit dem jeweiligen Primär- oder Fremdschüssel festlegen.
- `FROM`: Definiert die Tabelle, die Sie durchsuchen möchten.
- `WHERE`: Definiert Bedingungen mithilfe von Operatoren wie SQL `NOT`, um die Datenabfrage einzugrenzen.
- `NOT`: Legt in Kombination mit `WHERE` die Negation einer Bedingung fest, die Suchergebnisse nicht erfüllen sollen.

Möchten Sie Ihre 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.

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

### SQL `NOT`: Kombination mit `OR`

In Kombination mit `OR` können Sie Daten ausschließen, die **mindestens eine der Suchbedingungen** nicht erfüllen.

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

## Für diese Anwendungsmöglichkeiten eignet sich der `NOT`-Operator

Die Einsatzmöglichkeiten für Abfragen und Suchen mit `NOT` sind **nahezu unbegrenzt**. Sie können zum Beispiel:

- Daten von Kundinnen und Kunden, Bestellungen oder Produkten nach Region, Jahr, Kategorie, Preis oder Eigenschaften ausschließen
- Datensätze ignorieren, die über ungültige oder fehlende Werte verfügen
- Finanzdaten, die bestimmte Transaktionskriterien nicht erfüllen, filtern
- Daten von Angestellten ausschließen, die nicht zu einer bestimmten Abteilung gehören
- Bewerberinnen und Bewerber herausfiltern, die eine bestimmte Qualifikation nicht erfüllen

## Praktische Beispiele für den SQL `NOT`-Operator

Je nach Anwendungsfall 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 optionalen Operatoren definieren. Zur Veranschaulichung bieten wir Ihnen **drei praktische Anwendungsbeispiele**.

### Ausschließen von Angestellten nach Region

Sie möchten in einer Tabelle „Angestellte“ nur Informationen zu Angestellten anzeigen lassen, **die nicht in Deutschland leben**. Hierzu legen Sie mit der Spalte „Land“, der `WHERE`-Klausel, dem `NOT`-Operator und dem Vergleichsoperator `=` die Bedingung wie folgt fest:

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

Ähnlich gehen Sie beispielsweise vor, wenn Sie in einer Produktetabelle nur Produkte anzeigen möchten, die **nicht mehr auf Lager sind**:

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

### Filtern von Kundengruppen

In einer Tabelle „Kunden“ suchen Sie nach einer bestimmten Kundengruppe, die **vordefinierte Bedingungen nicht erfüllen**. Sie sollen in diesem Beispiel nicht jünger als 30 sein und nicht in Berlin leben, daher kommen zusätzlich zu `NOT` auch Vergleichsoperatoren und der `AND`-Operator zum Einsatz.

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

### Filtern von fehlenden Qualifikationen bei Bewerbung

Sie möchten in einer Tabelle „Bewerberinnen und Bewerber“ bestimmte Ergebnisse ausschließen, die **spezifische Qualifikationen** wie „Bachelor“ oder „Berufserfahrung“ nicht erfüllen. Die Suche sieht wie folgt aus:

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

## Alternativen zu SQL `NOT`

Eine Alternative mit identischer Funktion gibt es nicht, da der `NOT`-Operator sich durch die Negation von Suchkriterien auszeichnet. Da es sich bei SQL `NOT` um einen vielseitigen SQL-Operator handelt, lässt er sich jedoch **für präzise Abfragen** mit verschiedenen SQL-Befehlen kombinieren. Dazu zählen SQL JOIN oder SQL `HAVING`-Aggregatfunktionen wie [SQL SUM](https://www.ionos.com/de-ch/digitalguide/server/konfiguration/sql-sum/) oder `AVG`, Vergleichsoperatoren wie `=` oder `>` sowie Befehle und Operatoren wie SQL LIKE. Um das Ausschlussverfahren auf mehrere Bedingungen einzugrenzen oder zu erweitern, bieten sich zudem die logischen Operatoren `AND` und `OR` an.


This is a markdown version of: [https://www.ionos.com/de-ch/digitalguide/server/konfiguration/sql-not/](https://www.ionos.com/de-ch/digitalguide/server/konfiguration/sql-not/) for AI/LLM consumption.