AND-, OR- und NOT-Operatoren in SQL verwenden
AND
Die 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.
id | FirstName | LastName | Age | DateJoined | Location |
---|---|---|---|---|---|
1 | Will | Smith | 52 | 2020-08-23 | Los Angeles |
2 | Brad | Pitt | 56 | 2018-06-15 | San Francisco |
3 | Tom | Hanks | 64 | 2017-02-27 | San Diego |
4 | Angelina | Jolie | 45 | 2019-04-02 | Los Angeles |
5 | Meryl | Streep | 71 | 2014-03-21 | Manhattan |
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' ; |
id | FirstName | LastName | Age | DateJoined | Location |
---|---|---|---|---|---|
4 | Angelina | Jolie | 45 | 2019-04-02 | Los 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:
id | FirstName | LastName | Age | DateJoined | Location |
---|---|---|---|---|---|
1 | Will | Smith | 52 | 2020-08-23 | Los Angeles |
3 | Tom | Hanks | 64 | 2017-02-27 | San Diego |
4 | Angelina | Jolie | 45 | 2019-04-02 | Los 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:
id | FirstName | LastName | Age | DateJoined | Location |
---|---|---|---|---|---|
2 | Brad | Pitt | 56 | 2018-06-15 | San Francisco |
3 | Tom | Hanks | 64 | 2017-02-27 | San Diego |
5 | Meryl | Streep | 71 | 2014-03-21 | Manhattan |
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.
id | FirstName | LastName | Age | DateJoined | Location |
---|---|---|---|---|---|
1 | Will | Smith | 52 | 2020-08-23 | Los Angeles |
2 | Brad | Pitt | 56 | 2018-06-15 | San Francisco |
3 | Tom | Hanks | 64 | 2017-02-27 | San Diego |
4 | Angelina | Jolie | 45 | 2019-04-02 | Los Angeles |
5 | Meryl | Streep | 71 | 2014-03-21 | Manhattan |
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:
id | FirstName | LastName | Age | DateJoined | Location |
---|---|---|---|---|---|
1 | Will | Smith | 52 | 2020-08-23 | Los Angeles |
5 | Meryl | Streep | 71 | 2014-03-21 | Manhattan |
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.