WHERE Süzgeçleri: Karşılaştırma ve Mantık İşleçleri
Satırları =, <>, , AND, OR ve NOT ile süzün; işleç önceliğini ve parantezleri anlayın.
WHERE Süzgeçleri: Karşılaştırma ve Mantık İşleçleri, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 2. 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.
WHERE'in Rolü
WHERE, satırları gruplamadan veya toplamadan önce filtreler. Yalnızca koşulun TRUE olduğu satırlar döndürülür.
Karşılaştırma İşleçleri
Standart karşılaştırmalar, karşılaştırılabilir tüm türlerde çalışır:
SELECT * FROM products WHERE price > 100;
SELECT * FROM products WHERE price >= 100;
SELECT * FROM products WHERE price < 50;
SELECT * FROM products WHERE price <= 50;
SELECT * FROM products WHERE category = 'books';
SELECT * FROM products WHERE category <> 'books'; -- != also worksAND, OR, NOT
Koşulları mantıksal işleçlerle birleştirin:
-- Both true:
SELECT * FROM products
WHERE category = 'books' AND price < 50;
-- Either true:
SELECT * FROM products
WHERE category = 'books' OR category = 'music';
-- Negation:
SELECT * FROM products
WHERE NOT (category = 'books');İşleç Önceliği
Öncelik sırası (yüksekten düşüğe): NOT → AND → OR. Açıklık için karmaşık koşulları her zaman parantez içine alın:
-- Without parens — almost certainly wrong:
SELECT * FROM orders
WHERE status = 'open' OR status = 'pending' AND total > 100;
-- means: status = open OR (status = pending AND total > 100)
-- With parens — clearer:
SELECT * FROM orders
WHERE (status = 'open' OR status = 'pending') AND total > 100;IN ve NOT IN
Çok sayıda OR koşulu için kısa yol:
SELECT * FROM users
WHERE country IN ('US', 'CA', 'GB', 'AU');
-- Equivalent to:
SELECT * FROM users
WHERE country = 'US' OR country = 'CA' OR country = 'GB' OR country = 'AU';BETWEEN
Sınırları dâhil eden aralık denetimi:
SELECT * FROM orders
WHERE total BETWEEN 100 AND 500;
-- Equivalent to: total >= 100 AND total <= 500NULL Güvenli Filtreler
NULL ile yapılan karşılaştırmalar NULL üretir (FALSE değil) ve NULL içeren satırlar WHERE tarafından atılır. Gerektiğinde IS NULL / IS NOT NULL ifadelerini açıkça kullanın:
-- Returns users where deleted_at is unknown:
SELECT * FROM users WHERE deleted_at IS NULL;
-- IS DISTINCT FROM treats NULL as a comparable value:
SELECT * FROM events WHERE status IS DISTINCT FROM 'closed';BOOLEAN Sütunları
Bir BOOLEAN sütunu için karşılaştırma yapmanız gerekmez:
SELECT * FROM tasks WHERE done; -- = TRUE
SELECT * FROM tasks WHERE NOT done; -- = FALSE or NULL
SELECT * FROM tasks WHERE done IS NOT TRUE; -- FALSE or NULL onlyLIKE ile Desen Eşleştirme
% herhangi bir dizeyle, _ ise tam olarak bir karakterle eşleşir:
SELECT * FROM users WHERE email LIKE '%@gmail.com';
SELECT * FROM products WHERE sku LIKE 'A_-___';
-- Case-insensitive in PostgreSQL:
SELECT * FROM users WHERE email ILIKE '%@GMAIL.com';Filtreler ve Performans
WHERE tümceleri, dizinlerin gerçek değerini gösterdiği yerdir. Dizinlenmiş sütunlardaki eşitlik (=) ve aralık (<, BETWEEN) filtreleri, tüm tablo taramalarını milisaniyelik aramalara dönüştürür.
Değerlendirme Sırası
Veritabanı mantıksal olarak şu sırayla değerlendirir: FROM → WHERE → GROUP BY → HAVING → SELECT → ORDER BY → LIMIT. Bu nedenle WHERE ham satırları görür; SELECT içindeki sütun takma adları henüz tanımlı değildir.
-- This fails — alias not visible in WHERE:
SELECT total * 0.9 AS discounted
FROM orders WHERE discounted > 100; -- ERROR
-- Repeat the expression instead, or wrap in a subquery.Özet
WHERE, satırları seçmek için kullandığınız temel araçtır.
- Standart karşılaştırma ve mantıksal işleçler
- AND/OR karışımlarında parantez kullanımı
IS NULLkullanın — hiçbir zaman= NULLkullanmayın- Dizinlenmiş sütunlarda WHERE hızlıdır
Hızlı Kontrol
Yalnızca age değerinin 18 veya daha büyük, country değerinin ise US olduğu satırları tutan koşul hangisidir?
Sıkça Sorulan Sorular
“WHERE Süzgeçleri: Karşılaştırma ve Mantık İşleçleri” dersi ücretsiz mi?
Evet — “WHERE Süzgeçleri: Karşılaştırma ve Mantık İşleçleri” 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.
“WHERE Süzgeçleri: Karşılaştırma ve Mantık İşleçleri” dersinde ne öğreneceğim?
Satırları =, <>, , AND, OR ve NOT ile süzün; işleç önceliğini ve parantezleri anlayın. 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 2. dersidir.
“WHERE Süzgeçleri: Karşılaştırma ve Mantık İşleçleri” 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
- Sütunları ve İfadeleri Seçme
- WHERE Süzgeçleri: Karşılaştırma ve Mantık İşleçleri
- Tek ve Birden Çok Sütunla ORDER BY
- LIMIT, OFFSET ve Sayfalamanın Temelleri