NULL: Üçüncü Doğruluk Değeri
NULL'ın anlamını, NULL'ın hiçbir şeye (kendisi dâhil) eşit olmadığını ve üç değerli mantığın WHERE ifadelerini nasıl etkilediğini öğrenin.
NULL: Üçüncü Doğruluk Değeri, 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.
NULL Nedir?
NULL, bilinmeyen veya eksik veriyi temsil eder. Sıfır değildir, boş bir dize değildir, false değildir. Bir değerin açıkça bulunmadığını belirtir.
NULL Hiçbir Şeye Eşit Değildir (Kendisine Bile)
Herkesi zorlayan kural şudur:
SELECT NULL = NULL; -- NULL (not true!)
SELECT NULL = 0; -- NULL
SELECT NULL = ''; -- NULL
SELECT NULL <> 1; -- NULLIS NULL ve IS NOT NULL Kullanımı
NULL değerini denetlemek için özel koşullar olan IS NULL ve IS NOT NULL ifadelerini kullanmanız gerekir:
SELECT email FROM users WHERE deleted_at IS NULL; -- active users
SELECT email FROM users WHERE deleted_at IS NOT NULL; -- deleted usersÜç Değerli Mantık
SQL mantıksal değerleri ÜÇ değer içerir: TRUE, FALSE ve UNKNOWN (NULL).
| A | B | A AND B | A OR B |
|---|---|---|---|
| TRUE | NULL | NULL | TRUE |
| FALSE | NULL | FALSE | NULL |
| NULL | NULL | NULL | NULL |
Koşul NULL Olduğunda WHERE Satırları Atar
Bir satır için WHERE x = 5 ifadesi NULL olarak değerlendirilirse (çünkü x NULL'dır), o satır döndürülmez; NOT döndürme kuralı uygulanır. Yalnızca koşulun TRUE olduğu satırlar tutulur.
-- Suppose age is NULL for some users:
SELECT * FROM users WHERE age >= 18;
-- Users with NULL age are NOT returned, even though we
-- don't actually know they're under 18.NOT IN NULL Tuzağı
Alt sorgudaki herhangi bir ad NULL ise bu sorgu ZERO (yani sıfır) satır döndürür:
SELECT * FROM users
WHERE name NOT IN (SELECT excluded_name FROM blocklist);
-- If blocklist has a NULL row, the whole NOT IN evaluates to NULL
-- → no rows returned
-- Safer:
SELECT * FROM users u
WHERE NOT EXISTS (
SELECT 1 FROM blocklist b WHERE b.excluded_name = u.name
);COALESCE: NULL Değerini Varsayılanla Değiştirme
COALESCE, NULL olmayan ilk bağı döndürür:
SELECT id, COALESCE(full_name, email, 'Anonymous') AS display_name
FROM users;
-- If full_name is NULL, use email; if that's NULL too, use 'Anonymous'.NULLIF: Tersi
NULLIF(a, b), a = b olduğunda NULL, aksi durumda a döndürür. '' veya 0 gibi özel işaret değerlerini NULL olarak ele almak için kullanışlıdır.
SELECT NULLIF(price, 0) FROM products;
-- Returns NULL when price is 0, useful for AVG() that should ignore zeros.Toplama İşlevlerinde NULL
Toplama işlevleri (COUNT(*) hariç) NULL girdilerini atlar:
-- Suppose: prices = [10, 20, NULL, 30]
SELECT COUNT(*) FROM products; -- 4 (counts rows)
SELECT COUNT(price) FROM products; -- 3 (counts non-NULL prices)
SELECT AVG(price) FROM products; -- 20 (60 / 3, not 60 / 4)
SELECT SUM(price) FROM products; -- 60NULL Sıralaması
Varsayılan olarak PostgreSQL, artan sıralamada NULL değerlerini sona, azalan sıralamada ise başa yerleştirir. Bunu geçersiz kılabilirsiniz:
SELECT * FROM users ORDER BY last_login_at DESC NULLS LAST;NULL ve Boş Dize Saklama
Her sütun için karar verin: '' geçerli bir değer mi? Değilse, "değer yok" anlamında NULL kullanın. Geçerliyse NULL farklı bir anlama gelir (örneğin, "henüz sorulmadı").
Tutarlı olun — aynı sütunda ikisini birden karıştırmayın.
Özet
NULL, kendine ait bir doğruluk değeridir.
IS NULLile denetleyin; hiçbir zaman= NULLkullanmayın- WHERE filtreleri yalnızca TRUE olan satırları tutar
- Toplama işlevleri NULL girdilerini atlar
COALESCEyardımcınızdır
Hızlı Kontrol
SELECT NULL = NULL; ne döndürür?
Sıkça Sorulan Sorular
“NULL: Üçüncü Doğruluk Değeri” dersi ücretsiz mi?
Evet — “NULL: Üçüncü Doğruluk Değeri” 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.
“NULL: Üçüncü Doğruluk Değeri” dersinde ne öğreneceğim?
NULL'ın anlamını, NULL'ın hiçbir şeye (kendisi dâhil) eşit olmadığını ve üç değerli mantığın WHERE ifadelerini nasıl etkilediğ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.
“NULL: Üçüncü Doğruluk Değeri” 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
- RDBMS Nedir ve Tablolar Neden Önemlidir
- Birincil Anahtarlar ve Benzersizlik
- NULL: Üçüncü Doğruluk Değeri
- Veri Türlerine Genel Bakış: INT VARCHAR DATE BOOLEAN