MySQL BETWEEN-Operator erklärt: Syntax, Beispiele und bewährte Methoden

1. Einführung

Eines der wichtigen Elemente für die effiziente Ausführung von Abfragen in einer MySQL-Datenbank ist der BETWEEN-Operator. Dieser Operator ist äußerst nützlich, wenn überprüft werden soll, ob Daten in einem bestimmten Bereich liegen. Er wird verwendet, um Bereiche für Zahlen, Daten und Strings anzugeben, was eine effiziente Datenauswahl in Datenbanksuchen und -filtern ermöglicht. In diesem Artikel erklären wir detailliert, wie der MySQL-BETWEEN-Operator verwendet wird, mit praktischen Beispielen und wichtigen Hinweisen.

2. Grundlegende Syntax des BETWEEN-Operators

Überblick über den BETWEEN-Operator

Der BETWEEN-Operator ist eine Bedingung, die in der WHERE-Klausel verwendet wird, um zu überprüfen, ob ein bestimmter Spaltenwert in einem definierten Bereich liegt. Die grundlegende Syntax lautet wie folgt:

SELECT column_name
FROM table_name
WHERE column_name BETWEEN start_value AND end_value;

Zum Beispiel, wenn eine Tabelle die Alter von Mitarbeitern speichert, können Sie diesen Operator verwenden, um Mitarbeiter in einem bestimmten Altersbereich zu extrahieren.

Negative Form: NOT BETWEEN

Wenn Sie nach Werten suchen möchten, die nicht in einem angegebenen Bereich enthalten sind, verwenden Sie die negative Form NOT BETWEEN.

SELECT column_name
FROM table_name
WHERE column_name NOT BETWEEN start_value AND end_value;

3. Angabe eines numerischen Bereichs

Verwendung von BETWEEN für numerische Bereiche

Der BETWEEN-Operator ist sehr praktisch für die Angabe numerischer Bereiche. Zum Beispiel, wenn Sie Daten extrahieren möchten, bei denen die Gehälter der Mitarbeiter zwischen 50.000 und 100.000 liegen, schreiben Sie die Abfrage wie folgt:

SELECT employee_id, name, salary
FROM employees
WHERE salary BETWEEN 50000 AND 100000;

Beispieldaten:

employee_idnamesalary
1Sato45000
2Suzuki55000
3Takahashi75000
4Tanaka120000

Ausführungsergebnis:

employee_idnamesalary
2Suzuki55000
3Takahashi75000

In der obigen Abfrage werden nur Mitarbeiter ausgewählt, deren Gehälter zwischen 50.000 und 100.000 liegen.

Unterschied zu Vergleichsoperatoren

Wenn Sie dieselbe Bedingung mit Vergleichsoperatoren ausdrücken, würde das so aussehen:

SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;

Die Verwendung von BETWEEN macht die Abfrage knapper und verbessert die Lesbarkeit. Besonders bei mehreren Bereichsbedingungen macht BETWEEN die Abfrage leichter verständlich.

4. Angabe eines Datumsbereichs

Verwendung von BETWEEN mit Datumsdaten

BETWEEN kann auch verwendet werden, um Datumsbereiche anzugeben. Zum Beispiel, um Bestellungen aus der Bestelltabelle zwischen dem 1. Januar 2024 und dem 31. Dezember 2024 zu extrahieren, schreiben Sie die Abfrage wie folgt:

SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';

Beispieldaten:

order_idcustomer_idorder_date
11012024-01-15
21022024-05-30
31032025-03-01

Ausführungsergebnis:

order_idcustomer_idorder_date
11012024-01-15
21022024-05-30

Wie oben gezeigt, extrahiert der BETWEEN-Operator Daten innerhalb des angegebenen Datumsbereichs.

Behandlung von Zeitdaten

Wenn die Datumsdaten Zeit enthalten, ist besondere Aufmerksamkeit erforderlich. Zum Beispiel, wenn die Spalte order_date vom Typ DATETIME ist und Zeitwerte enthält, wird die Angabe eines Bereichs mit BETWEEN Aufzeichnungen von Mitternacht am Startdatum bis 23:59:59 am Enddatum einschließen.

WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';

5. Angabe eines String-Bereichs

Verwendung von BETWEEN mit String-Daten

Der BETWEEN-Operator kann auch auf String-Daten angewendet werden. Zum Beispiel, wenn Sie nach Produkten suchen möchten, deren Namen zwischen ‚A‘ und ‚M‘ liegen, schreiben Sie die Abfrage wie folgt:

SELECT product_id, product_name
FROM products
WHERE product_name BETWEEN 'A' AND 'M';

Beispieldaten:

product_idproduct_name
1Apple
2Banana
3Mango
4Orange

Ausführungsergebnis:

product_idproduct_name
1Apple
2Banana
3Mango

Hinweise zur alphabetischen Reihenfolge

Bei der Angabe von String-Bereichen wird angenommen, dass Strings alphabetisch geordnet sind. Da Datenbanken je nach Kollations-Einstellungen zwischen Groß- und Kleinschreibung unterscheiden können, ist Vorsicht geboten. Zum Beispiel können 'a' und 'A' als unterschiedliche Werte behandelt werden.

6. Wichtige Hinweise bei der Verwendung von BETWEEN

Die Reihenfolge des Bereichs ist entscheidend

When using the BETWEEN operator, be careful about the order of the start and end values. If the start value is greater than the end value, the query may return unintended results.

SELECT * FROM table_name WHERE column_name BETWEEN 100 AND 50;  -- unintended result

Also, since BETWEEN includes both boundary values, it is important to choose start and end values carefully.

Index Usage and Efficiency

The BETWEEN operator generally has performance comparable to standard comparison operators. However, to optimize query performance, proper indexing is essential. When indexes are correctly configured, query execution speed using the BETWEEN operator improves. For example, setting an index on a date column allows date range queries to run more efficiently.

7. Practical Queries and Advanced Examples

Using BETWEEN with Multiple Columns

The BETWEEN operator can also be used in combination across multiple columns. For example, when performing a range search by specifying both product price and stock quantity, the following query can be used:

SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
AND stock BETWEEN 50 AND 200;

This query searches for products with prices between 1,000 and 5,000 and stock quantities between 50 and 200.

NOT BETWEEN Advanced Example

By using the negative form NOT BETWEEN, you can extract data outside a specified range. For example, to search for employees whose salaries are below 50,000 or above 100,000, write the query as follows:

SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;

Execution Result:

employee_idnamesalary
1Sato45000
4Tanaka120000

This query retrieves employees whose salaries do not fall within the range of 50,000 to 100,000. Using NOT BETWEEN makes it easy to extract data based on inverse conditions.

8. Visual Query Example

To visually demonstrate query results, using a simple diagram can be effective. For example, the following illustration explains how BETWEEN works:

Price range: [----- 1000 ---- 5000 -----]
Product A price: 3000 (within range)
Product B price: 6000 (outside range)

Using a diagram like this makes it easier to intuitively understand whether data falls within the specified query range.

9. Summary

The BETWEEN operator is a highly useful tool in MySQL when performing range-based searches. It can be applied to numeric, date, and string data, allowing queries to be written concisely and efficiently. However, it is important to understand key considerations such as inclusion of boundary values and proper index usage. By leveraging this knowledge, you can optimize database query performance and efficiently extract the data you need.

10. References

For more details and additional usage examples, refer to the official MySQL documentation and specialized database textbooks. Practicing queries yourself will further deepen your understanding of the BETWEEN operator.