- 1 1. Einführung
- 2 2. Grundsyntax des BETWEEN‑Operators
- 3 3. Numerische Bereichsfilterung
- 4 4. Datumsbereichsfilterung
- 5 5. Zeichenkettenbereichsfilterung
- 6 6. Wichtige Hinweise zum BETWEEN‑Operator
- 7 7. Praktische Abfragen und Anwendungsfälle
- 8 8. Visuelle Beispiele für Abfragen
- 9 9. Zusammenfassung
- 10 10. Referenzen
1. Einführung
Eines der Schlüsselelemente für effizientes Abfragen in MySQL‑Datenbanken ist der BETWEEN‑Operator. Dieser Operator ist äußerst nützlich, wenn geprüft werden soll, ob Daten innerhalb eines bestimmten Bereichs liegen. Er kann auf Zahlen, Datumsangaben und Zeichenketten angewendet werden und ist damit ein leistungsstarkes Werkzeug zum Filtern und Abrufen von Daten. In diesem Artikel erklären wir, wie man den MySQL‑BETWEEN‑Operator verwendet, geben praktische Beispiele und weisen auf wichtige Punkte hin, die zu beachten sind.
2. Grundsyntax des BETWEEN‑Operators
Was ist der BETWEEN‑Operator?
Der BETWEEN‑Operator wird in der WHERE‑Klausel verwendet, um zu prüfen, ob der Wert einer Spalte innerhalb eines angegebenen Bereichs liegt. Seine Grundsyntax lautet wie folgt:
SELECT column_name
FROM table_name
WHERE column_name BETWEEN start_value AND end_value;
Zum Beispiel, wenn eine Tabelle das Alter von Mitarbeitern speichert, kann man diesen Operator verwenden, um nur diejenigen zu extrahieren, deren Alter in einem bestimmten Bereich liegt.
Negative Form: NOT BETWEEN
Wenn Sie nach Werten außerhalb des angegebenen Bereichs suchen möchten, können Sie die negative Form NOT BETWEEN verwenden:
SELECT column_name
FROM table_name
WHERE column_name NOT BETWEEN start_value AND end_value;
3. Numerische Bereichsfilterung
Verwendung von BETWEEN mit Zahlen
Der BETWEEN‑Operator ist sehr praktisch beim Filtern numerischer Bereiche. Wenn Sie beispielsweise Mitarbeiter mit Gehältern zwischen 50.000 und 100.000 extrahieren möchten, können Sie die Abfrage wie folgt schreiben:
SELECT employee_id, name, salary
FROM employees
WHERE salary BETWEEN 50000 AND 100000;
Beispieldaten:
employee_id | name | Gehalt |
|---|---|---|
1 | Sato | 45000 |
2 | Suzuki | 55000 |
3 | Takahashi | 75000 |
4 | Tanaka | 120000 |
Ergebnis:
employee_id | name | Gehalt |
|---|---|---|
2 | Suzuki | 55000 |
3 | Takahashi | 75000 |
In dieser Abfrage werden nur Mitarbeiter ausgewählt, deren Gehalt zwischen 50.000 und 100.000 liegt.
Vergleichsoperatoren vs. BETWEEN
Die gleiche Bedingung kann auch mit Vergleichsoperatoren ausgedrückt werden, etwa so:
SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;
Die Verwendung von BETWEEN macht die Abfrage kompakter und leichter lesbar. Das ist besonders nützlich, wenn mehrere Bereichsbedingungen verarbeitet werden.

4. Datumsbereichsfilterung
Verwendung von BETWEEN mit Datumsangaben
Der BETWEEN‑Operator kann auch auf Datumsbereiche angewendet werden. Um beispielsweise Bestellungen abzurufen, die zwischen dem 1. Januar 2024 und dem 31. Dezember 2024 aufgegeben wurden, können Sie schreiben:
SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';
Beispieldaten:
order_id | customer_id | order_date |
|---|---|---|
1 | 101 | 2024-01-15 |
2 | 102 | 2024-05-30 |
3 | 103 | 2025-03-01 |
Ergebnis:
order_id | Kunden-ID | order_date |
|---|---|---|
1 | 101 | 2024-01-15 |
2 | 102 | 2024-05-30 |
Wie oben gezeigt, extrahiert der BETWEEN‑Operator Daten innerhalb des angegebenen Datumsbereichs.
Umgang mit Zeitdaten
Wenn die Datumsspalte Zeitwerte enthält, müssen Sie vorsichtig sein. Wenn die Spalte order_date vom Typ DATETIME ist, schließt BETWEEN Werte von Mitternacht (00:00:00) des Startdatums bis Mitternacht des Tages nach dem Enddatum ein. Um sicherzustellen, dass Sie den gesamten Tag erfassen, geben Sie die Zeitkomponente explizit an:
WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';
5. Zeichenkettenbereichsfilterung
Verwendung von BETWEEN mit Zeichenketten
Der BETWEEN‑Operator kann auch auf Zeichenkettendaten angewendet werden. Wenn Sie beispielsweise nach Produkten suchen möchten, deren Namen alphabetisch zwischen „A“ und „M“ liegen, sieht die Abfrage folgendermaßen aus:
SELECT product_id, product_name
FROM products
WHERE product_name BETWEEN 'A' AND 'M';
Beispieldaten:
product_id | product_name |
|---|---|
1 | Apple |
2 | Banana |
3 | Mango |
4 | Orange |
Ergebnis:
product_id | Produktname |
|---|---|
1 | Apple |
2 | Banana |
3 | Mango |
Alphabetische Reihenfolge‑Überlegungen
Beim Filtern von Zeichenketten mit BETWEEN sollten Sie beachten, dass die Auswertung nach alphabetischer Reihenfolge erfolgt. Außerdem kann je nach Kollationseinstellungen der Datenbank die Groß‑/Kleinschreibung eine Rolle spielen. Beispielsweise können 'a' und 'A' als unterschiedliche Werte behandelt werden. Prüfen Sie stets die Kollationseinstellungen, wenn Sie mit Zeichenkettenbereichen arbeiten.
6. Wichtige Hinweise zum BETWEEN‑Operator
Reihenfolge der Bereichswerte
Seien Sie vorsichtig bei der Reihenfolge der Bereichswerte. Wenn der Startwert größer ist als der Endwert, kann die Abfrage unerwartete Ergebnisse liefern:
SELECT *
FROM table_name
WHERE column_name BETWEEN 100 AND 50; -- Unintended result
Denken Sie auch daran, dass BETWEEN beide Enden des Bereichs einschließt, also wählen Sie Ihre Werte sorgfältig aus.
Indizes und Abfrageleistung
Der BETWEEN‑Operator verhält sich im Allgemeinen wie Vergleichsoperatoren. Um jedoch die Leistung zu optimieren, ist eine ordnungsgemäße Indizierung unerlässlich. Wenn Sie beispielsweise einen Index auf eine Datumsspalte anwenden, werden Abfragen, die BETWEEN für diese Spalte verwenden, effizienter ausgeführt.
7. Praktische Abfragen und Anwendungsfälle
Verwendung von BETWEEN auf mehreren Spalten
Sie können BETWEEN‑Bedingungen auch auf mehreren Spalten kombinieren. Wenn Sie beispielsweise Produkte sowohl nach Preis‑ als auch nach Lagerbestandsbereich filtern möchten, können Sie schreiben:
SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
AND stock BETWEEN 50 AND 200;
Diese Abfrage ruft Produkte ab, deren Preis zwischen 1000 und 5000 liegt, mit Lagerbeständen zwischen 50 und 200.
Praktische Verwendung von NOT BETWEEN
Durch die Verwendung der negativen Form NOT BETWEEN können Sie leicht Daten außerhalb eines bestimmten Bereichs extrahieren. Zum Beispiel, um Mitarbeiter zu finden, deren Gehalt weniger als 50.000 oder mehr als 100.000 beträgt, können Sie schreiben:
SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;
Result:
Mitarbeiter_ID | name | Gehalt |
|---|---|---|
1 | Sato | 45000 |
4 | Tanaka | 120000 |
Diese Abfrage ruft Mitarbeiter ab, deren Gehalt nicht zwischen 50.000 und 100.000 liegt. Die Verwendung von NOT BETWEEN macht es einfach, die Gegenbedingung anzuwenden.
8. Visuelle Beispiele für Abfragen
Um Abfrageergebnisse anschaulicher zu machen, können visuelle Diagramme hilfreich sein. Zum Beispiel können Sie die Wirkung von BETWEEN wie folgt darstellen:
Price Range: [----- 1000 ---- 5000 -----]
Product A Price: 3000 (Inside Range)
Product B Price: 6000 (Outside Range)
Solche Illustrationen erleichtern das Verständnis, ob ein Wert innerhalb des in der Abfrage angegebenen Bereichs liegt.
9. Zusammenfassung
Der BETWEEN‑Operator ist ein leistungsstarkes Werkzeug in MySQL für bereichsbasierte Suchen. Er kann auf numerische, Datums- und Zeichenkettendaten angewendet werden, sodass Sie Abfragen schreiben können, die sowohl kompakt als auch effizient sind. Es ist jedoch wichtig, seine Eigenschaften zu verstehen – wie die Inklusivität von Grenzwerten und die Bedeutung einer ordnungsgemäßen Indizierung –, um unerwartete Ergebnisse zu vermeiden. Durch die Anwendung dieses Wissens können Sie die Abfrageleistung optimieren und nur die Daten extrahieren, die Sie effektiver benötigen.
10. Referenzen
Für weitere Details und fortgeschrittene Anwendungsfälle können Sie die offizielle MySQL‑Dokumentation oder spezialisierte Datenbankbücher konsultieren. Darüber hinaus ist das eigenständige Experimentieren mit Abfragen einer der besten Wege, Ihr Verständnis dafür zu vertiefen, wie der BETWEEN‑Operator funktioniert.


