3. Angabe eines numerischen Bereichs
Verwendung von BETWEEN für numerische Bereiche
Der BETWEEN‑Operator ist sehr praktisch, um numerische Bereiche anzugeben. Zum Beispiel, wenn Sie Mitarbeiter extrahieren möchten, deren Gehalt zwischen 50.000 und 100.000 liegt, 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 | salary |
|---|---|---|
| 1 | Smith | 45000 |
| 2 | Johnson | 55000 |
| 3 | Brown | 75000 |
| 4 | Taylor | 120000 |
Ausführungsergebnis:
| employee_id | name | salary |
|---|---|---|
| 2 | Johnson | 55000 |
| 3 | Brown | 75000 |
In der obigen Abfrage werden nur Mitarbeiter ausgewählt, deren Gehalt im Bereich von 50.000 bis 100.000 liegt.
Unterschied zu Vergleichsoperatoren
Wenn Sie dieselbe Bedingung mit Vergleichsoperatoren schreiben, sieht das folgendermaßen aus:
SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;
Die Verwendung von BETWEEN macht die Abfrage kompakter und verbessert die Lesbarkeit. Das ist besonders hilfreich, wenn Sie mehrere Bereichsbedingungen haben, da BETWEEN die Abfrage leichter lesbar macht. 
4. Angabe eines Datumsbereichs
Verwendung von BETWEEN mit Datumsdaten
BETWEEN kann ebenfalls verwendet werden, um einen Bereich für Datumsdaten anzugeben. Zum Beispiel, um Bestellungen aus einer Auftrags‑Tabelle zwischen dem 1. Januar 2024 und dem 31. Dezember 2024 zu extrahieren, können Sie die Abfrage wie folgt 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 |
Ausführungsergebnis:
| order_id | customer_id | order_date |
|---|---|---|
| 1 | 101 | 2024-01-15 |
| 2 | 102 | 2024-05-30 |
Wie oben gezeigt, extrahiert der BETWEEN‑Operator Daten, die innerhalb des angegebenen Datumsbereichs liegen.
Umgang mit Zeitwerten
Wenn Ihre Datumsdaten Zeitwerte enthalten, müssen Sie vorsichtig sein. Zum Beispiel, wenn die Spalte order_date vom Typ DATETIME ist und Zeit enthält, wird BETWEEN den Bereich vom exakt Mitternacht des Startdatums bis zum exakt Mitternacht des Enddatums anvisieren, sofern Sie die Zeit nicht korrekt angeben.
WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';
5. Angabe eines Zeichenkettenbereichs
Verwendung von BETWEEN mit Zeichenkettendaten
Der BETWEEN‑Operator kann auch auf Zeichenkettendaten angewendet werden. Zum Beispiel, wenn Sie nach Produkten suchen möchten, deren Namen im Bereich von ‚A‘ bis ‚M‘ liegen, können Sie die Abfrage wie folgt schreiben:
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 |
Ausführungsergebnis:
| product_id | product_name |
|---|---|
| 1 | Apple |
| 2 | Banana |
| 3 | Mango |
Hinweise zur alphabetischen Reihenfolge
Bei der Angabe eines Bereichs für Zeichenketten wird angenommen, dass die Zeichenketten alphabetisch sortiert sind. Je nach Datenbankeinstellungen kann die Groß‑/Kleinschreibung ebenfalls eine Rolle spielen, daher müssen Sie beim Entwerfen und Codieren vorsichtig sein. Zum Beispiel können 'a' und 'A' als unterschiedliche Werte behandelt werden.
6. Wichtige Hinweise bei der Verwendung von BETWEEN
Dinge, auf die Sie bei der Definition von Bereichen achten sollten
Bei der Verwendung des BETWEEN‑Operators müssen Sie auf die Reihenfolge der Start‑ und Endwerte achten. Wenn der Startwert größer als der Endwert ist, kann die Abfrage unerwartete Ergebnisse liefern.
SELECT * FROM table_name WHERE column_name BETWEEN 100 AND 50; -- Unexpected result
Außerdem, da BETWEEN beide Endpunkte des angegebenen Bereichs einschließt, ist es wichtig, die Start‑ und Endwerte sorgfältig zu wählen.
Indexnutzung und Effizienz
Der BETWEEN‑Operator bietet in der Regel eine Leistung, die mit Standard‑Vergleichsoperatoren vergleichbar ist. Um die Abfrageleistung zu optimieren, müssen Sie jedoch geeignete Indizes setzen. Wenn Indizes korrekt konfiguriert sind, können Abfragen, die den BETWEEN‑Operator verwenden, schneller ausgeführt werden. Zum Beispiel ermöglicht das Hinzufügen eines Indexes zu einer Datumsspalte, dass Datumsbereichsabfragen effizienter ausgeführt werden.
7. Praktische Abfragen und erweiterte Beispiele
Verwendung von BETWEEN mit mehreren Spalten
.Der BETWEEN‑Operator kann auch verwendet werden, indem mehrere Spalten kombiniert werden. Wenn Sie beispielsweise gleichzeitig nach einem Preis‑ und einem Lagerbestand‑Bereich suchen möchten, können Sie eine Abfrage wie diese schreiben:
SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
AND stock BETWEEN 50 AND 200;
Diese Abfrage sucht nach Produkten, deren Preis im Bereich von 1 000 bis 5 000 liegt und deren Lagerbestand im Bereich von 50 bis 200.
Praktisches Beispiel für NOT BETWEEN
Durch die Verwendung der negativen Form NOT BETWEEN können Sie Daten extrahieren, die außerhalb eines bestimmten Bereichs liegen. Wenn Sie zum Beispiel Mitarbeiter finden möchten, deren Gehalt unter 50 000 oder über 100 000 liegt, können Sie schreiben:
SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;
Ausführungsergebnis:
| employee_id | name | salary |
|---|---|---|
| 1 | Smith | 45000 |
| 4 | Taylor | 120000 |
Diese Abfrage ruft Mitarbeiter ab, deren Gehalt nicht im Bereich von 50 000 bis 100 000 liegt. Mit NOT BETWEEN lässt sich leicht Daten mit der gegenteiligen Bedingung extrahieren.
8. Visuelles Beispiel einer Abfrage
Um Abfrageergebnisse visuell darzustellen, kann ein einfaches Diagramm sehr hilfreich sein. Sie können zum Beispiel ein Diagramm wie das untenstehende verwenden, um zu erklären, wie BETWEEN funktioniert:
Price range: [----- 1000 ---- 5000 -----]
Product A price: 3000 (in range)
Product B price: 6000 (out of range)
Ein solches Diagramm erleichtert das intuitive Verständnis, ob die Daten innerhalb des in der Abfrage angegebenen Bereichs liegen.
9. Zusammenfassung
Der BETWEEN‑Operator ist ein sehr nützliches Werkzeug in MySQL, wenn Sie innerhalb eines angegebenen Bereichs suchen müssen. Er kann auf numerische, Datums‑ und Zeichenkettendaten angewendet werden und ermöglicht es, Abfragen kompakt und effizient zu formulieren. Es ist jedoch wichtig, einige zentrale Punkte zu verstehen, etwa dass beide Endpunkte des Bereichs eingeschlossen werden und wie Indizes die Performance beeinflussen können. Mit diesem Wissen können Sie die Leistung von Datenbankabfragen optimieren und die benötigten Daten effizient extrahieren.
10. Referenzen
Für weitere Details zu Abfragen und zusätzlichen Nutzungsmustern empfiehlt es sich, die offizielle MySQL‑Dokumentation sowie Fachbücher zu Datenbanken zu konsultieren. Durch das eigenständige Ausprobieren von Abfragen können Sie Ihr Verständnis des BETWEEN‑Operators zudem vertiefen.

