1. Introduction
Salah satu elemen penting untuk menjalankan kueri secara efisien di database MySQL adalah operator BETWEEN. Operator ini sangat berguna ketika memeriksa apakah data berada dalam rentang tertentu. Operator ini digunakan untuk menentukan rentang untuk angka, tanggal, dan string, memungkinkan ekstraksi data yang efisien dalam pencarian dan penyaringan database. Dalam artikel ini, kami akan menjelaskan secara detail cara menggunakan operator BETWEEN MySQL, contoh praktis, dan pertimbangan penting.
2. Basic Syntax of the BETWEEN Operator
BETWEEN Operator Overview
Operator BETWEEN adalah kondisi yang digunakan dalam klausa WHERE untuk memeriksa apakah nilai kolom tertentu berada dalam rentang yang ditentukan. Sintaks dasarnya adalah sebagai berikut:
SELECT column_name
FROM table_name
WHERE column_name BETWEEN start_value AND end_value;
Misalnya, jika tabel menyimpan usia karyawan, Anda dapat menggunakan operator ini untuk mengekstrak karyawan dalam rentang usia tertentu.
Negative Form: NOT BETWEEN
Jika Anda ingin mencari nilai yang tidak termasuk dalam rentang yang ditentukan, gunakan bentuk negatif NOT BETWEEN.
SELECT column_name
FROM table_name
WHERE column_name NOT BETWEEN start_value AND end_value;
3. Specifying a Numeric Range
Using BETWEEN for Numeric Ranges
Operator BETWEEN sangat nyaman untuk menentukan rentang numerik. Misalnya, jika Anda ingin mengekstrak data di mana gaji karyawan antara 50.000 dan 100.000, tulis kueri sebagai berikut:
SELECT employee_id, name, salary
FROM employees
WHERE salary BETWEEN 50000 AND 100000;
Sample Data:
| employee_id | name | salary |
|---|---|---|
| 1 | Sato | 45000 |
| 2 | Suzuki | 55000 |
| 3 | Takahashi | 75000 |
| 4 | Tanaka | 120000 |
Execution Result:
| employee_id | name | salary |
|---|---|---|
| 2 | Suzuki | 55000 |
| 3 | Takahashi | 75000 |
Dalam kueri di atas, hanya karyawan yang gajinya berada antara 50.000 dan 100.000 yang dipilih.
Difference from Comparison Operators
Jika Anda menyatakan kondisi yang sama menggunakan operator perbandingan, itu akan terlihat seperti ini:
SELECT employee_id, name, salary
FROM employees
WHERE salary >= 50000 AND salary <= 100000;
Menggunakan BETWEEN membuat kueri lebih ringkas dan meningkatkan keterbacaan. Terutama ketika melibatkan beberapa kondisi rentang, BETWEEN membuat kueri lebih mudah dipahami.

4. Specifying a Date Range
Using BETWEEN with Date Data
BETWEEN juga dapat digunakan untuk menentukan rentang tanggal. Misalnya, untuk mengekstrak pesanan dari tabel pesanan antara 1 Januari 2024 dan 31 Desember 2024, tulis kueri sebagai berikut:
SELECT order_id, customer_id, order_date
FROM orders
WHERE order_date BETWEEN '2024-01-01' AND '2024-12-31';
Sample Data:
| order_id | customer_id | order_date |
|---|---|---|
| 1 | 101 | 2024-01-15 |
| 2 | 102 | 2024-05-30 |
| 3 | 103 | 2025-03-01 |
Execution Result:
| order_id | customer_id | order_date |
|---|---|---|
| 1 | 101 | 2024-01-15 |
| 2 | 102 | 2024-05-30 |
Seperti yang ditunjukkan di atas, operator BETWEEN mengekstrak data dalam rentang tanggal yang ditentukan.
Handling Time Data
Jika data tanggal mencakup waktu, diperlukan perhatian khusus. Misalnya, jika kolom order_date bertipe DATETIME dan mencakup nilai waktu, menentukan rentang dengan BETWEEN akan mencakup catatan dari tengah malam pada tanggal mulai hingga 23:59:59 pada tanggal akhir.
WHERE order_date BETWEEN '2024-01-01 00:00:00' AND '2024-12-31 23:59:59';
5. Specifying a String Range
Using BETWEEN with String Data
Operator BETWEEN juga dapat diterapkan pada data string. Misalnya, jika Anda ingin mencari produk yang namanya berada antara ‘A’ dan ‘M’, tulis kueri sebagai berikut:
SELECT product_id, product_name
FROM products
WHERE product_name BETWEEN 'A' AND 'M';
Sample Data:
| product_id | product_name |
|---|---|
| 1 | Apple |
| 2 | Banana |
| 3 | Mango |
| 4 | Orange |
Execution Result:
| product_id | product_name |
|---|---|
| 1 | Apple |
| 2 | Banana |
| 3 | Mango |
Alphabetical Order Considerations
Saat menentukan rentang string, diasumsikan bahwa string diurutkan secara alfabetis. Karena database mungkin membedakan antara huruf besar dan kecil tergantung pada pengaturan collation, diperlukan kehati-hatian. Misalnya, 'a' dan 'A' mungkin diperlakukan sebagai nilai yang berbeda.
6. Important Considerations When Using BETWEEN
Range Order Matters
.
Ketika menggunakan operator BETWEEN, berhati-hatilah terhadap urutan nilai awal dan nilai akhir. Jika nilai awal lebih besar daripada nilai akhir, kueri dapat menghasilkan hasil yang tidak diinginkan.
SELECT * FROM table_name WHERE column_name BETWEEN 100 AND 50; -- unintended result
Selain itu, karena BETWEEN mencakup kedua nilai batas, penting untuk memilih nilai awal dan nilai akhir dengan hati‑hati.
Penggunaan Indeks dan Efisiensi
Operator BETWEEN secara umum memiliki kinerja yang sebanding dengan operator perbandingan standar. Namun, untuk mengoptimalkan kinerja kueri, indeks yang tepat sangat penting. Ketika indeks dikonfigurasi dengan benar, kecepatan eksekusi kueri yang menggunakan operator BETWEEN akan meningkat. Misalnya, membuat indeks pada kolom tanggal memungkinkan kueri rentang tanggal berjalan lebih efisien.
7. Kueri Praktis dan Contoh Lanjutan
Menggunakan BETWEEN dengan Beberapa Kolom
Operator BETWEEN juga dapat dipakai secara kombinasi pada beberapa kolom. Misalnya, ketika melakukan pencarian rentang dengan menentukan baik harga produk maupun kuantitas stok, kueri berikut dapat digunakan:
SELECT product_name, price, stock
FROM products
WHERE price BETWEEN 1000 AND 5000
AND stock BETWEEN 50 AND 200;
Kueri ini mencari produk dengan harga antara 1.000 dan 5.000 serta kuantitas stok antara 50 dan 200.
Contoh Lanjutan NOT BETWEEN
Dengan menggunakan bentuk negatif NOT BETWEEN, Anda dapat mengekstrak data di luar rentang yang ditentukan. Misalnya, untuk mencari karyawan yang gajinya di bawah 50.000 atau di atas 100.000, tulis kueri sebagai berikut:
SELECT employee_id, name, salary
FROM employees
WHERE salary NOT BETWEEN 50000 AND 100000;
Hasil Eksekusi:
| employee_id | name | salary |
|---|---|---|
| 1 | Sato | 45000 |
| 4 | Tanaka | 120000 |
Kueri ini mengambil karyawan yang gajinya tidak berada dalam rentang 50.000 hingga 100.000. Menggunakan NOT BETWEEN memudahkan ekstraksi data berdasarkan kondisi kebalikan.
8. Contoh Kueri Visual
Untuk mendemonstrasikan hasil kueri secara visual, menggunakan diagram sederhana dapat efektif. Misalnya, ilustrasi berikut menjelaskan cara kerja BETWEEN:
Price range: [----- 1000 ---- 5000 -----]
Product A price: 3000 (within range)
Product B price: 6000 (outside range)
Menggunakan diagram seperti ini memudahkan pemahaman intuitif apakah data berada dalam rentang kueri yang ditentukan.
9. Ringkasan
Operator BETWEEN adalah alat yang sangat berguna di MySQL ketika melakukan pencarian berbasis rentang. Ia dapat diterapkan pada data numerik, tanggal, dan string, memungkinkan kueri ditulis secara ringkas dan efisien. Namun, penting untuk memahami pertimbangan utama seperti inklusi nilai batas dan penggunaan indeks yang tepat. Dengan memanfaatkan pengetahuan ini, Anda dapat mengoptimalkan kinerja kueri basis data dan mengekstrak data yang dibutuhkan secara efisien.
10. Referensi
Untuk detail lebih lanjut dan contoh penggunaan tambahan, lihat dokumentasi resmi MySQL serta buku teks basis data khusus. Berlatih menulis kueri sendiri akan semakin memperdalam pemahaman Anda tentang operator BETWEEN.


