Zurück zur Artikelliste Artikel
4 Leseminuten

AND-, OR- und NOT-Operatoren in SQL verwenden

ANDDie Operatoren AND, OR, OR und NOT sind wichtige logische Operatoren in SQL. Sie helfen Ihnen, die Bedingungen zu kombinieren, die zum Filtern von Datensätzen verwendet werden. Sie werden am häufigsten in Verbindung mit den Klauseln WHERE oder HAVING Klauseln verwendet. Außerdem ist dieses Thema eine ziemlich häufige Frage in einem SQL-Bewerbungsgespräch.

Damit Sie diese Operatoren vollständig verstehen, führe ich Sie durch einige Beispiele, in denen ich die Syntax und den Zweck der einzelnen Operatoren ausführlich erkläre. Das Üben an Beispielen wie diesen ist eine der besten Methoden, um SQL zu lernen.

Stellen Sie sich vor, dass wir ein Fitnessstudio mit verschiedenen Standorten in den Vereinigten Staaten betreiben und besitzen. Wenn sich jemand anmeldet, gibt er uns einige grundlegende Informationen. Diese werden in unserer members gespeichert, die eine eindeutige ID für jedes Mitglied enthält, zusammen mit dem Vor- und Nachnamen, dem Alter, dem Eintrittsdatum und dem Standort des Fitnessstudios.

idFirstNameLastNameAgeDateJoinedLocation
1WillSmith522020-08-23Los Angeles
2BradPitt562018-06-15San Francisco
3TomHanks642017-02-27San Diego
4AngelinaJolie452019-04-02Los Angeles
5MerylStreep712014-03-21Manhattan

SQL AND-Syntax

Die Syntax für den AND Operator lautet:

SELECT column_1, column_2, … column_n
FROM table
WHERE condition_1 AND condition_2 AND condition_n

Wenn mehrere Bedingungen mit dem Operator AND kombiniert werden, werden alle Zeilen zurückgegeben, die alle angegebenen Bedingungen erfüllen.

Nun ist es an der Zeit, den AND Operator auf unser Fitnessstudio-Szenario anzuwenden. Angenommen, wir möchten alle Mitglieder finden, die unter 50 Jahre alt sind und in Los Angeles leben. Wie können wir dies mit einer SQL-Abfrage erreichen?

SELECT * 
FROM members 
WHERE Age < 50 AND Location = 'Los Angeles';
idFirstNameLastNameAgeDateJoinedLocation
4AngelinaJolie452019-04-02Los Angeles

Obwohl wir zwei Mitglieder mit dem Location von Los Angeles haben, ist nur eines dieser Mitglieder unter 50 Jahre alt ( Age ). Denken Sie daran, dass bei Verwendung des SQL-Operators AND beide Bedingungen erfüllt sein müssen, damit ein Datensatz zurückgegeben werden kann.

SQL OR-Syntax

Die Syntax für den OR Operator lautet:

SELECT column_1, column_2, … column_n
FROM table
WHERE condition_1 OR condition_2 OR condition_n

Wenn mehrere Bedingungen mit dem Operator OR kombiniert werden, werden alle Zeilen zurückgegeben, die eine der angegebenen Bedingungen erfüllen. Wir können dies auf unsere members Tabelle anwenden, indem wir die folgende Abfrage schreiben:

SELECT * 
FROM members 
WHERE Location = 'Los Angeles' OR LastName = 'Hanks'

Mit dieser Abfrage möchten wir Zeilen abrufen, in denen LastName Hanks oder Location Los Angeles ist. Die Ausführung dieser Abfrage führt zu folgendem Ergebnis:

idFirstNameLastNameAgeDateJoinedLocation
1WillSmith522020-08-23Los Angeles
3TomHanks642017-02-27San Diego
4AngelinaJolie452019-04-02Los Angeles

Beachten Sie, dass unser Mitglied Tom Hanks in der Ergebnismenge enthalten ist, obwohl sein Fitnessstudio Location nicht Los Angeles ist. Das liegt daran, dass er die zweite von uns angegebene Bedingung erfüllt - sein Nachname ist "Hanks". Denken Sie daran: Wenn Sie den SQL-Operator OR verwenden, werden alle Zeilen zurückgegeben, die eine der angegebenen Bedingungen erfüllen.

SQL NOT-Syntax

Die Syntax für den NOT Operator lautet:

SELECT column_1, column_2, … column_n
FROM table
WHERE NOT condition 

Wenn mehrere Bedingungen mit dem Operator NOT kombiniert werden, werden alle Zeilen zurückgegeben, die die angegebenen Bedingungen nicht erfüllen.

Wir können diesen Operator in unserem Fitnessstudio-Beispiel auf verschiedene Weise verwenden. Was wäre, wenn wir alle unsere Mitglieder außerhalb von Los Angeles finden wollten? Mit dem Operator NOT können wir einfach schreiben:

SELECT * 
FROM members 
WHERE NOT Location = 'Los Angeles'

Wenn wir diese Abfrage ausführen, erhalten wir den folgenden Datensatz:

idFirstNameLastNameAgeDateJoinedLocation
2BradPitt562018-06-15San Francisco
3TomHanks642017-02-27San Diego
5MerylStreep712014-03-21Manhattan

Sie können deutlich sehen, welche Auswirkung der NOT Operator hatte. Es wurden keine Mitglieder zurückgegeben, deren Location auf Los Angeles eingestellt war.

Kombinieren der Operatoren AND, OR und NOT

Es gibt bestimmte Situationen, in denen Sie diese Operatoren kombinieren müssen, um genau die gewünschten Daten zu bestimmen.

Hier ist unsere members Tabelle; das ist der Datensatz, den wir für dieses Beispiel abfragen werden.

idFirstNameLastNameAgeDateJoinedLocation
1WillSmith522020-08-23Los Angeles
2BradPitt562018-06-15San Francisco
3TomHanks642017-02-27San Diego
4AngelinaJolie452019-04-02Los Angeles
5MerylStreep712014-03-21Manhattan

Nehmen wir an, wir wollen die Daten von Mitgliedern abrufen, die ganz bestimmte Kriterien erfüllen. Wir wollen Mitglieder, die sind:

  • Über 50 Jahre alt sind.
  • Die in Los Angeles oder Manhattan wohnen.

Um dies zu erreichen, können wir die folgende SQL-Abfrage schreiben:

SELECT * FROM members
WHERE AGE > 50 AND (Location='Los Angeles' OR Location='Manhattan')

Beachten Sie, dass wir Klammern verwendet haben, um unsere Operatoren zu gruppieren. Dadurch weiß SQL genau, wie die Reihenfolge unserer Operatoren zu interpretieren ist. Das Ergebnis dieser Abfrage ist:

idFirstNameLastNameAgeDateJoinedLocation
1WillSmith522020-08-23Los Angeles
5MerylStreep712014-03-21Manhattan

Sie können sehen, wie die Kombination der Operatoren AND, OR und NOT auf unterschiedliche Weise dazu beitragen kann, unsere Daten präzise zu filtern.

Erweitern Sie Ihr SQL mit den Operatoren AND, OR und NOT

Sie haben nun die Möglichkeit, genau die Daten abzurufen, die Sie benötigen. Dies eröffnet Ihnen viele Möglichkeiten.

Sie können die Klausel WHERE in Verbindung mit AND, OR und NOT verwenden, wodurch Sie Ihre SQL-Abfragen sehr präzise gestalten können. Die Lektüre unserer Blogbeiträge ist eine gute Möglichkeit, die SQL-Syntax zu erlernen und die verschiedenen Szenarien kennenzulernen, in denen SQL nützlich sein kann. Wenn Sie jedoch eine wirklich umfassende Anleitung zum Schreiben von Abfragen wünschen, sollten Sie unseren SQL für Anfänger Kurs, der Ihnen viele praktische Übungen bietet.