SQL · 2/8
Koşullu filtreleme: WHERE
Tablodaki binlerce satır arasından yalnızca belirli koşullara uyan verileri WHERE ile filtrelemek.
Önerilen çalışma: 25–45 dakika; örnekleri kendin uygula. Süre kişiye göre değişir.
Bu sayfada · 9 başlık
Başlamadan önce
Önceki dersteki örneği çalıştırmış olman ve dosya/çıktı ayrımını biliyor olman yararlı.
Öğrenme sırası: konuyu oku → çıktıyı tahmin et → örneği değiştir → alıştırmayı çöz → cevabını gerekçelendir.

Videoyla adım adım izle
Türkçe açıklamalı sessiz görsel anlatım. Sesli ders veya kesintisiz ekran kaydı değildir. Duraklatıp kendi ortamında uygula.
Video bölümleri ve tam metin
Koşullu filtreleme: WHERE
Tablodaki binlerce satır arasından yalnızca belirli koşullara uyan verileri WHERE ile filtrelemek.
Kavramı kur
Veritabanında her zaman tablonun tamamına ihtiyaç duymayız. Belirli bir kullanıcının bilgilerini getirmek, stokta tükenen ürünleri bulmak veya belirli bir tarihten sonraki kayıtları listelemek için WHERE filtresi kullanılır.
Neden böyle çalışıyor?
WHERE ifadesi FROM satırından sonra yazılır. Koşulda büyüktür (>), küçüktür (<), eşit (=) veya eşit değil (!=) gibi karşılaştırma işleçleri kullanılır. Birden çok koşulu AND (ve) veya OR (veya) ile bağlayabilirsin.
Çalışma sırası
Metinsel ve tarihsel değerler SQL'de tek tırnak içine ('...') yazılır. Sayısal değerlerde ise tırnak kullanılmaz. Tırnak işaretini unutmak SQL motorunun metni bir sütun adı sanmasına yol açar.
İkinci örnek · 1
SELECT ad, maas seçilecek sütunları listeler. Kodun tamamı yazılı derste bulunur.
Kod
SELECT ad, maas
FROM calisanlar
WHERE maas > 50000;Beklenen sonucu oku
Sonuç kümesine yalnızca şartı sağlayan satırlar eklenir.
Beklenen çıktı: ad | maas Ahmet | 65000 Ayşe | 52000
Bir değeri sen değiştir
Maaşı 60000'den büyük çalışanları filtrele. Bölümü yalnızca 'Yazılım' olanları getiren bir metin filtresi yaz.
Hata nereden gelir?
Metin değerlerini tırnaksız yazmak hataya sebep olur; tek tırnak kullan.
Kendi çözümünü kur
AND işleci kullanarak hem Yazılım bölümünde olan hem de maaşı 50000 üzerinde olanları seç. Metin filtresinde tek tırnak kullan: WHERE bolum = 'Yazılım'. İki koşulu AND ile birleştir.
Çözüm varyasyonu · 1
Önce kendi denemeni yap; sonra bu varyasyonun girdileri ile sonucunu karşılaştır.
Kod
SELECT ad, bolum, maas
FROM calisanlar
WHERE bolum = 'Yazılım' AND maas > 50000;Kendini kontrol et
WHERE bolum = 'Yazılım' AND maas > 50000 sorgusunda her iki şart da sağlanmalı mıdır? Yanıt: Evet; AND işleci bağlı olduğu tüm koşulların aynı anda doğru olmasını zorunlu kılar.
Beklenen çıktı: ad | bolum | maas Ahmet | Yazılım | 65000
Konu anlatımı
Veritabanında her zaman tablonun tamamına ihtiyaç duymayız. Belirli bir kullanıcının bilgilerini getirmek, stokta tükenen ürünleri bulmak veya belirli bir tarihten sonraki kayıtları listelemek için WHERE filtresi kullanılır.
WHERE ifadesi FROM satırından sonra yazılır. Koşulda büyüktür (>), küçüktür (<), eşit (=) veya eşit değil (!=) gibi karşılaştırma işleçleri kullanılır. Birden çok koşulu AND (ve) veya OR (veya) ile bağlayabilirsin.
Metinsel ve tarihsel değerler SQL'de tek tırnak içine ('...') yazılır. Sayısal değerlerde ise tırnak kullanılmaz. Tırnak işaretini unutmak SQL motorunun metni bir sütun adı sanmasına yol açar.
İlk örneği oku ve dene
Koşullu filtreleme: WHERE
WHERE ile yalnızca belirli kriterlere uyan satırları getiririz. Metin değerleri tek tırnak içine yazılır.
SELECT ad, maas
FROM calisanlar
WHERE maas > 50000;
▶ Sonuç
ad | maas Ahmet | 65000
Adım adım neden böyle çalışıyor?
- SELECT ad, maas seçilecek sütunları listeler.
- FROM calisanlar kaynak tabloyu işaret eder.
- WHERE maas > 50000 her satırın maas sütununu inceler; 50000'den büyük olanları geçirir, diğerlerini eler.
- Sonuç kümesine yalnızca şartı sağlayan satırlar eklenir.
İkinci çözümlü örnek
Tablodaki binlerce satır arasından yalnızca belirli koşullara uyan verileri WHERE ile filtrelemek.
SELECT ad, maas
FROM calisanlar
WHERE maas > 50000;
▶ Sonuç
ad | maas Ahmet | 65000 Ayşe | 52000
Kolaydan zora sen dene
- Maaşı 60000'den büyük çalışanları filtrele.
- Bölümü yalnızca 'Yazılım' olanları getiren bir metin filtresi yaz.
- AND işleci kullanarak hem Yazılım bölümünde olan hem de maaşı 50000 üzerinde olanları seç.
İpucunu aç
Metin filtresinde tek tırnak kullan: WHERE bolum = 'Yazılım'. İki koşulu AND ile birleştir.
Üç görevin açıklamalı çözümünü oku
- WHERE maas > 60000 ile yüksek maaşlı satırlar filtrelenir.
- Metin karşılaştırmasında tek tırnak kullanılır: WHERE bolum = 'Yazılım'.
- AND işleci her iki koşulu aynı anda zorunlu kılar; parantez gerekmez.
Bir çözüm varyasyonu gör
Çözüm varyasyonu
Önce kendi görevlerini dene. Bu varyasyonda girdi ve sonuçları karşılaştır.
SELECT ad, bolum, maas
FROM calisanlar
WHERE bolum = 'Yazılım' AND maas > 50000;
▶ Sonuç
ad | bolum | maas Ahmet | Yazılım | 65000
Yaygın hata ve çözümü
- Metin değerlerini tırnaksız yazmak hataya sebep olur; tek tırnak kullan.
- Eşitlik için çift eşittir (==) yazmak birçok motorda geçersizdir; SQL standart eşitlik için tek = kullanır.
Kendini değerlendir
Ezberlemeden açıklayabiliyor musun?
WHERE bolum = 'Yazılım' AND maas > 50000 sorgusunda her iki şart da sağlanmalı mıdır?
Açıklamalı yanıt
Evet; AND işleci bağlı olduğu tüm koşulların aynı anda doğru olmasını zorunlu kılar.
Kendi çözümünde bir girdiyi değiştir. Çalıştırmadan önce beklenen sonucu yaz; gerçek sonuçla karşılaştır ve fark varsa hangi satırdan kaynaklandığını açıkla.
Kaynak ve çalışma ortamı
Örnekler küçük öğretim senaryolarıdır. Java/C#/PHP/Swift çalışma ortamını kendi cihazında ayrıca doğrula; yazılı sonuçlar beklenen davranışı açıklar.
Resmî dil belgeleriBu içerik işine yaradı mı?
Görüşünü aşağıdan işaretleyebilir ve varsa notunu bırakabilirsin.