English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

SQL AND & OR-Operatoren

In diesem Tutorial werden Sie lernen, wie Sie AND- und OR-Operatoren in der Klausel verwenden, um nach mehreren Bedingungen zu filtern.

Einträge nach Bedingungen auswählen

Im vorherigen Kapitel haben wir gelernt, wie man mit der WHERE-Klausel nach Einträgen in einer Tabelle sucht, die eine Bedingung erfüllen. Aber manchmal müssen Sie nach mehreren Bedingungen filtern, z.B. Einträge auswählen, die30 Jahren und/Benutzer in der Region USA, die Preise unter100 US-Dollar und Bewertungen größer als4Produkte und vieles mehr.

AND-Operator

Der AND-Operator ist ein logischer Operator, der zwei Bedingungen kombiniert und gibt TRUE zurück, wenn beide Bedingungen wahr sind. Er wird normalerweiseSELECT,UPDATE,DELETEvonWHEREDie WHERE-Klausel verwendet den AND-Operator, um Bedingungen zu bilden, um die Ergebnismenge zu filtern.

SELECT column1_name, column2_name, columnN_nameFROM table_nameWHERE condition1 AND condition2;

Lassen Sie uns einige Beispiele betrachten, um zu zeigen, wie es in der Praxis funktioniert.

Angenommen, wir haben in der Datenbank eine alsemployeesenthalten, die folgende Aufzeichnungen haben:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      1 | Ethan Hunt   | 2001-05-01 |   5000 |       4 |
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
|      5 | Martin Blank | 2008-06-24 |   5600 |    NULL |
+--------+--------------+------------+--------+---------+

WHERE-Klausel mit den Operatoren AND und OR verwendet, um nach mehreren Bedingungen zu filtern.

Der folgende SQL-Befehl wird nur ausemployeesIn der Tabelle werden Gehälter (salary) größer als7000 unddept_idgleich5dieser Mitarbeiter.

SELECT * FROM employees
WHERE salary > 7000 AND dept_id = 5;

Nach der Ausführung erhalten Sie die folgenden Ausgaben:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
+--------+--------------+------------+--------+---------+

OR-Operator

Genauso, der OR-Operator ist ein logischer Operator, der zwei Bedingungen kombiniert, aber gibt TRUE zurück, wenn mindestens eine der Bedingungen wahr ist.

Nachdem der folgende SQL-Befehl ausgeführt wurde:employeesIn der Tabelle werden Gehälter (salary) größer als7000 oderdept_idgleich5alle Mitarbeiter.

SELECT * FROM employees
WHERE salary > 7000 OR dept_id = 5;

Dieses Mal erhalten Sie die folgenden Ausgaben:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
|      4 | Rick Deckard | 2007-01-03 |   7200 |       3 |
+--------+--------------+------------+--------+---------+

Die Verwendung von AND und OR-Operatoren gleichzeitig

Sie können AND und OR kombinieren, um komplexe Bedingungen zu erstellen.

Die folgenden SQL-Anweisungen geben zurück, dass das Gehalt größer als5000,unddept_idgleich1oder5alle Mitarbeiter.

SELECT * FROM employees
WHERE salary > 5000 AND (dept_id = 1 OR dept_id = 5);

Nach dem Ausführen der obigen Abfrage erhalten Sie den folgenden Ausgabe:

+--------+--------------+------------+--------+---------+
| emp_id | emp_name     | hire_date  | salary | dept_id |
+--------+--------------+------------+--------+---------+
|      2 | Tony Montana | 2002-07-15 |   6500 |       1 |
|      3 | Sarah Connor | 2005-10-18 |   8000 |       5 |
+--------+--------------+------------+--------+---------+