Operator BETWEEN MySQL Dijelaskan: Sintaks, Contoh, dan Praktik Terbaik

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_idnamesalary
1Sato45000
2Suzuki55000
3Takahashi75000
4Tanaka120000

Execution Result:

employee_idnamesalary
2Suzuki55000
3Takahashi75000

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_idcustomer_idorder_date
11012024-01-15
21022024-05-30
31032025-03-01

Execution Result:

order_idcustomer_idorder_date
11012024-01-15
21022024-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_idproduct_name
1Apple
2Banana
3Mango
4Orange

Execution Result:

product_idproduct_name
1Apple
2Banana
3Mango

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_idnamesalary
1Sato45000
4Tanaka120000

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.