0Pricing
SQL Academy · Ders

Aralıklar için BETWEEN

Kapsayıcı sayısal ve tarih aralıkları için BETWEEN kullanın; yarı açık aralıklarda açıkça >= ve < karşılaştırmalarını ne zaman tercih etmeniz gerektiğini öğrenin.

Aralıklar için BETWEEN, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, SQL Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. SQL Academy kursu toplamda 4 dersten oluşur.

BETWEEN Uç Değerleri İçerir

BETWEEN a AND b, x >= a AND x <= b koşulunu sağlayan değerlerle eşleşir. Her iki uç değer de dâhildir.

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

Tarih Aralıkları

BETWEEN, tarihler ve zaman damgaları üzerinde de çalışır:

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

Uç Değerlerin Dâhil Olması Tuzağı

Bir TIMESTAMP sütunu kullanılırken BETWEEN '2024-12-31' ifadesi 31'inin gece yarısında sona erer; günün sonunda sona ermez. 31 Aralık saat 14:00'te verilen siparişler hariç tutulur.

-- 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';

Zaman için Yarı Açık Aralıkları Tercih Edin

Yarı açık >= start AND < next_period deseni belirsiz değildir, her ayrıntı düzeyinde çalışır ve ardışık dönemler için doğal biçimde birbirine bağlanır.

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

NOT BETWEEN

BETWEEN'in tersi — aralığı hariç tutar:

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

Aralık Sorguları ve Dizinler

B-tree dizini aralık sorgularına yardımcı olur. En iyi seçicilik için bileşik dizinlerde aralık sütununu son sıraya yerleştirin:

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;

Dizeler ve BETWEEN

BETWEEN, dizeleri sözlükbilimsel olarak karşılaştırır. Büyük/küçük harf kullanımına dikkat edin:

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

Aralık Türleri (PostgreSQL)

PostgreSQL, yarı açık aralıklar için özel aralık türlerine sahiptir:

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

CHECK ile Aralıkları Doğrulama

Ekleme sırasında start <= end olduğundan emin olun:

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

Sayısal Kovalara Ayırma

Kovalar oluşturmak için BETWEEN ile CASE ifadelerini birleştirin:

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

Küçük değerin hangi tarafta olduğunu önemsemeyen SQL standardı uzantısı:

SELECT 5 BETWEEN SYMMETRIC 10 AND 1;   -- TRUE

Özet

BETWEEN, uç değerleri içeren aralıklar için kullanışlı bir kısa biçimdir.

  • Zaman damgası uç değerlerine dikkat edin — yarı açık >= start AND < end biçimini tercih edin
  • Bileşik dizinler aralık sorgularını hızlandırır
  • CHECK kısıtlamaları geçerli aralıkları zorunlu kılar

Hızlı Kontrol

Standart SQL'de BETWEEN a AND b ifadesinin her iki uç değeri de dâhil midir?

Sıkça Sorulan Sorular

“Aralıklar için BETWEEN” dersi ücretsiz mi?

Evet — “Aralıklar için BETWEEN” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve SQL Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. SQL Academy kursu toplamda 4 dersten oluşur.

“Aralıklar için BETWEEN” dersinde ne öğreneceğim?

Kapsayıcı sayısal ve tarih aralıkları için BETWEEN kullanın; yarı açık aralıklarda açıkça >= ve < karşılaştırmalarını ne zaman tercih etmeniz gerektiğini öğrenin. SQL Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

SQL Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te SQL Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.

“Aralıklar için BETWEEN” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu SQL Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her SQL Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. LIKE Kalıpları ve Joker Karakterler
  2. Kümeler için IN ve NOT IN
  3. Aralıklar için BETWEEN
  4. IS NULL, IS NOT NULL ve COALESCE
← SQL Academy Sayfasına Dön