🟡 LIKE, BETWEEN, IN

LIKE, BETWEEN, IN: Bu üç operatörü bir arşiv memurunun üç farklı arama refleksi gibi düşün. LIKE, dosya adının bir parçasını hatırlayan memurdur: 'adında Login geçen ne varsa get

Bu üç operatörü bir arşiv memurunun üç farklı arama refleksi gibi düşün. LIKE, dosya adının bir parçasını hatırlayan memurdur: 'adında Login geçen ne varsa getir'. BETWEEN, takvimden aralık işaretleyen memurdur: 'ocak ayının tamamı'. IN ise elinde hazır bir liste tutar: 'şu üç durumdan biri olan her şey'. Peki neden SQL bunlar için ayrı operatörler tanımlamış — hepsini OR ile yazmak zaten mümkünken? Çünkü `status='FAIL' OR status='SKIP' OR status='ERROR'` üç satırda okunabilir ama on beş değerde okunamaz hâle gelir; üstelik birini yanlışlıkla `AND` yazdığında sorgu **sessizce sıfır satır** döner, hata vermez. IN, o hatayı yapmanı imkânsız kılar. Aynı şekilde BETWEEN, `>= AND = lo && d <= hi` aralık kontrolü, IN ≈ `List.of(...).contains(status)`. Fark şu ki Java'da bu kontrolü veriyi belleğe **çektikten sonra** yaparsın; SQL'de ise veritabanının içinde, index kullanılarak yapılır — 2 milyon satırlık test geçmişinde bu fark saniyeler değil dakikalardır. QA bağlamında bu üçlü günlük ekmektir: 'son sprint'te adında Checkout geçen ve FAIL/ERROR durumundaki koşumlar' sorusu, bir bug raporunu 'ara sıra kırılıyor' iddiasından çıkarıp 'şu tarih aralığında 12 kez kırıldı' kanıtına dönüştürür.

Micro Lab: SQL — GROUP BY / CTE / Window

TODO satirini beklenen cozumdeki kritik satirla degistir. Bu gercek runtime degil; amac dogru yapinin yazilmasini kontrollu olarak pekistirmek.

Adim Adim: SQL — GROUP BY / CTE / Window

Aggregation mi Window mi?

Aggregation (ozetleme) mi Window (satir bazli hesap) mi? Onu belirle

Aggregation icin GROUP BY ile ozetlenecek sutunu sec

HAVING ile gruplara kosul uygula — WHERE gibi ama agregasyon sonrasinda

WITH cte_adi AS (...) SELECT ... FROM cte_adi ile sorguyu modülerlestir

OVER(PARTITION BY) ekle

Window icin SUM(col) OVER (PARTITION BY bolum ORDER BY siralama) kullan

SQL GROUP BY ve Window Function sorgusu yazma sirasi nedir?

Bug Takip DB — İnteraktif Örnek

Bug Tracking DB — Interactive Example