Skip to main content

📊 SQL BETWEEN ve IN Operatörleri Kullanımı: Kapsamlı Veri Filtreleme

🚀 Bu Rehberde Ne Öğreneceksiniz?

Bu rehber, SQL sorgularında veri filtrelemeyi kolaylaştıran iki güçlü operatörü anlatır:
BETWEEN ile bir değerin belirli bir aralıkta olup olmadığını,
IN ile bir değerin belirli bir kümede yer alıp almadığını öğreneceksiniz.

Tüm örnekler, MySQL ortamında pratik bir satış veritabanı üzerinden anlatılmıştır.


🧠 Teknik Özet

Konu: SQL’de BETWEEN ve IN operatörleri ile veri filtreleme
Amaç: Sorguların yalnızca istenen aralık veya kümelerdeki satırları döndürmesini sağlamak
Adımlar:

  1. MySQL'e bağlanma ve örnek tablo oluşturma
  2. BETWEEN ile aralık sorgulama
  3. IN ile küme üyeliği kontrolü
  4. Alt sorgu (subquery) ile dinamik küme oluşturma
  5. NOT BETWEEN ve NOT IN kullanımı

⚙️ 1. Örnek Veritabanı Kurulumu

MySQL Sunucusuna Bağlanın

mysql -u rabisu_satisci -p

➡️ MySQL terminaline giriş yapar.

Veritabanı ve Tabloyu Oluşturun

CREATE DATABASE satis_vt;
USE satis_vt;

➡️ Yeni bir “satis_vt” veritabanı oluşturur ve aktif hale getirir.

CREATE TABLE satislar (
isim VARCHAR(20),
bilesen INT,
cihaz INT,
aygit INT
);

➡️ Satış ekibi performansını izlemek için tabloyu oluşturur.

Örnek Verileri Ekleyin

INSERT INTO satislar VALUES
('Tamer', 12, 22, 18),
('Burak', 19, 8, 13),
('Leyla', 7, 29, 3),
('Bora', 16, 16, 15),
('Serap', 17, 2, 31),
('Mert', 5, 9, 7),
('Hakan', 14, 2, 0);

➡️ Tabloya örnek satış verilerini ekler.


🎯 2. BETWEEN Operatörü: Aralık Sorgulama

BETWEEN operatörü, bir değerin belirtilen iki sınır arasında olup olmadığını kontrol eder. Aralık her zaman alt sınır ve üst sınır dahil olacak şekilde çalışır.

Sayısal Aralıkta Filtreleme

SELECT isim, bilesen
FROM satislar
WHERE bilesen BETWEEN 14 AND 19;

➡️ bilesen satışı 14 ile 19 arasında olan çalışanları listeler.

Sütunlar Arasında Aralık Kontrolü

SELECT *
FROM satislar
WHERE aygit BETWEEN cihaz AND bilesen;

➡️ aygit değeri cihaz ile bilesen değerleri arasına düşen satırları getirir.

Alfabetik Aralıkta Filtreleme

SELECT isim
FROM satislar
WHERE isim BETWEEN 'A' AND 'M';

➡️ İsmi alfabetik olarak “A” ile “M” arasında olan çalışanları döndürür.


🔗 3. IN Operatörü: Küme Üyeliği Kontrolü

IN operatörü, bir sütundaki değerin belirli bir kümede yer alıp almadığını kontrol eder.

Sabit Küme ile Arama

SELECT isim, cihaz
FROM satislar
WHERE cihaz IN (2, 9, 22);

➡️ cihaz satışı 2, 9 veya 22 olan satırları getirir.


🧩 4. Alt Sorgu (Subquery) ile Dinamik Küme

Alt sorgular, IN operatörüne dinamik bir veri kümesi sağlar.

Adım A – Yardımcı Tabloyu Oluşturun

CREATE TABLE ornek_kume (asal_sayi INT);

➡️ Alt sorguda kullanılacak yardımcı tabloyu oluşturur.

Adım B – Örnek Veriler Ekleyin

INSERT INTO ornek_kume VALUES
(2), (3), (5), (7), (11), (13), (17), (19), (23), (29);

➡️ İlk 10 asal sayıyı tabloya ekler.

Adım C – Alt Sorgu ile IN Kullanımı

SELECT isim, bilesen
FROM satislar
WHERE bilesen IN (SELECT asal_sayi FROM ornek_kume);

➡️ bilesen değeri asal sayılar tablosundaki değerlerle eşleşen satırları döndürür.


💬 Sıkça Sorulan Sorular (SSS)

  1. BETWEEN Operatöründe Sınırlar Dahil mi?

Evet. BETWEEN 10 AND 20 ifadesi hem 10’u hem 20’yi kapsar.

  1. IN ile OR arasında fark var mı?

IN (1, 2, 3) = sutun = 1 OR sutun = 2 OR sutun = 3 ile eşdeğerdir, ancak IN sorguları daha okunur ve kısadır.

  1. NULL Değerleri IN ile Kontrol Edebilir miyim?

Hayır. NULL için IS NULL veya IS NOT NULL kullanmalısınız.

  1. NOT BETWEEN ve NOT IN ne işe yarar?

Bu ifadeler, belirtilen aralığın veya kümenin dışındaki verileri getirir.

  1. BETWEEN ve IN Performansı Nasıl Etkiler?

İndeksli sütunlarda performans çok yüksektir. Ancak alt sorgulu IN kullanımı büyük veri kümelerinde yavaşlayabilir.


🧭 Sonuç

Bu rehberde SQL’de BETWEEN ile aralık sorgularını ve IN ile küme tabanlı filtrelemeyi öğrendiniz. Artık sorgularınızı daha okunur, daha performanslı ve daha esnek yazabilirsiniz.

Verilerinizi güçlü bir altyapıda analiz etmek için Rabisu Bulut platformunda SQL veritabanınızı hemen oluşturabilirsiniz.