0Pricing
SQL Academy · Pelajaran

BETWEEN untuk Rentang

Gunakan BETWEEN untuk rentang angka dan tanggal inklusif, serta ketahui kapan perbandingan eksplisit >= dan < lebih tepat untuk interval setengah terbuka.

BETWEEN untuk Rentang adalah pelajaran SQL Academy gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar SQL Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus SQL Academy mencakup 4 pelajaran total.

BETWEEN Bersifat Inklusif

BETWEEN a AND b mencocokkan nilai dengan x >= a AND x <= b. Kedua titik akhir bersifat inklusif.

SELECT * FROM orders WHERE total BETWEEN 100 AND 500;
-- equivalent to:
SELECT * FROM orders WHERE total >= 100 AND total <= 500;

Rentang Tanggal

BETWEEN juga berfungsi pada tanggal dan stempel waktu:

SELECT * FROM orders
WHERE created_at BETWEEN '2024-01-01' AND '2024-12-31';

Kejutan pada Titik Akhir Inklusif

Saat menggunakan kolom TIMESTAMP, BETWEEN '2024-12-31' berakhir pada tengah malam tanggal 31, BUKAN pada akhir hari tersebut. Pesanan yang dibuat pada 14.00 tanggal 31 Desember tidak disertakan.

-- WRONG — misses orders later on Dec 31:
WHERE created_at BETWEEN '2024-12-01' AND '2024-12-31';

-- RIGHT — half-open interval:
WHERE created_at >= '2024-12-01'
  AND created_at <  '2025-01-01';

Lebih Baik Gunakan Interval Setengah Terbuka untuk Waktu

Pola setengah terbuka >= start AND < next_period tidak ambigu, berfungsi untuk tingkat ketelitian apa pun, dan tersusun secara alami untuk periode yang berurutan.

WHERE created_at >= date_trunc('month', NOW())
  AND created_at <  date_trunc('month', NOW()) + INTERVAL '1 month';

NOT BETWEEN

Kebalikan dari BETWEEN — mengecualikan rentang:

SELECT * FROM products WHERE price NOT BETWEEN 10 AND 20;
-- equivalent to: price < 10 OR price > 20

Kueri Rentang dan Indeks

Indeks B-tree membantu kueri rentang. Indeks gabungan menggunakan kolom rentang sebagai kolom terakhir untuk selektivitas terbaik:

CREATE INDEX orders_user_total_idx ON orders (user_id, total);

-- Efficient: equality on user_id, range on total
SELECT * FROM orders
WHERE user_id = 42 AND total BETWEEN 100 AND 500;

String dan BETWEEN

BETWEEN membandingkan string secara leksikografis. Berhati-hatilah terhadap huruf besar-kecil:

SELECT * FROM users WHERE last_name BETWEEN 'A' AND 'C';
-- Includes 'Adams' and 'Bond', excludes 'C' itself only if 'C' < 'Ca...'

Jenis Rentang (PostgreSQL)

PostgreSQL memiliki jenis rentang khusus untuk interval setengah terbuka:

SELECT int4range(10, 20) @> 15;       -- true  (15 in [10,20))
SELECT tsrange('2024-01-01', '2025-01-01') @> NOW()::TIMESTAMP;

Memvalidasi Rentang dengan CHECK

Pastikan start <= end saat penyisipan:

CREATE TABLE bookings (
  id BIGSERIAL PRIMARY KEY,
  start_at TIMESTAMPTZ NOT NULL,
  end_at   TIMESTAMPTZ NOT NULL,
  CHECK (start_at < end_at)
);

Pengelompokan Numerik

Gabungkan BETWEEN dengan CASE untuk membuat kelompok:

SELECT id, total,
  CASE
    WHEN total BETWEEN 0 AND 99    THEN 'small'
    WHEN total BETWEEN 100 AND 999 THEN 'medium'
    ELSE 'large'
  END AS bucket
FROM orders;

BETWEEN SYMMETRIC

Ekstensi standar SQL yang tidak memedulikan sisi mana yang lebih kecil:

SELECT 5 BETWEEN SYMMETRIC 10 AND 1;   -- TRUE

Ringkasan

BETWEEN adalah singkatan praktis untuk rentang inklusif.

  • Waspadai titik akhir stempel waktu — lebih baik gunakan bentuk setengah terbuka >= start AND < end
  • Indeks gabungan mempercepat kueri rentang
  • Batasan CHECK memastikan rentang yang valid

Pemeriksaan Singkat

Apakah kedua titik akhir BETWEEN a AND b bersifat inklusif dalam SQL standar?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “BETWEEN untuk Rentang” gratis?

Ya — teks lengkap “BETWEEN untuk Rentang” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus SQL Academy, upgrade ke CoddyKit PRO. Kursus SQL Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “BETWEEN untuk Rentang”?

Gunakan BETWEEN untuk rentang angka dan tanggal inklusif, serta ketahui kapan perbandingan eksplisit >= dan < lebih tepat untuk interval setengah terbuka. Kamu berlatih SQL Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai SQL Academy?

Tidak diperlukan pengalaman sebelumnya. SQL Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “BETWEEN untuk Rentang” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran SQL Academy ini?

Ya. Setiap pelajaran SQL Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Pola LIKE dan Karakter Wildcard
  2. IN dan NOT IN untuk Himpunan
  3. BETWEEN untuk Rentang
  4. IS NULL, IS NOT NULL, dan COALESCE
← Kembali ke SQL Academy