Academy › 🗄️ SQL & Veritabanı › Veri ve Tablolar
NULL: bilinmeyenin adı
🗄️ Veri ve Tablolar bölümü · Code Quest SQL & Veritabanı parkuru
Veritabanlarında bir değer bazen yoktur. Yeni çıkacak bir oyunun henüz puanı yoktur; bir oyuncu şehrini yazmamıştır. SQL bu durumu NULL ile ifade eder.
NULL, sıfır değildir. Boş metin ('') de değildir. NULL = "bilinmiyor". Sıfır bir bilgidir ("stok 0, tükendi"), NULL bilgisizliktir ("stok kaç, bilmiyoruz").
SELECT ad, puan FROM oyunlar;
ad | puan ───────────────┼───── Neon Drift | 4.6 Piksel Kale | 4.2 Gölge Avcısı | 4.8 Kelime Kulesi | 3.9 Yıldız Sürüsü | 4.4 Zaman Kapısı | 4.7 Robot Bahçesi | 4 Kara Yörünge | NULL Buz Vadisi | 3.5 Kule Savunması | 4.1 Derin Mavi | 4.9 Sessiz Ada | 4.3
Kara Yörünge 2026 yapımı — henüz çıkmadı, kimse puanlamadı. O yüzden puanı NULL. Bir de Robot Bahçesi'ne bak: puanı 4.0 girilmişti ama sonuçta 4 görünüyor. Sayılarda anlamsız sıfırlar gösterilmez; 4.0 ile 4 aynı sayıdır.
NULL'ın en tuhaf tarafı şudur: NULL ile yapılan her hesap NULL verir. Bilinmeyene 10 eklersen yine bilinmeyen elde edersin — mantıklı, değil mi?
SELECT 100 + NULL;
100 + NULL
──────────
NULLCOALESCE fonksiyonunu öğreneceksin.Şimdilik iki şeyi aklında tut:
- NULL bir değer değil, bir durumdur: "burada veri yok".
- Bu yüzden
= NULLdiye bir karşılaştırma çalışmaz; doğrusuIS NULL'dır (3. bölüm).
İyi tasarlanmış bir veritabanında NULL'lara izin verilen sütunlar bilinçli seçilir. Bir oyunun adı asla NULL olamaz (kim satın alacağını bilmez), ama puanı olabilir.
SELECT ad, sehir FROM oyuncular;
ad | sehir ───────┼───────── Ada | İstanbul Deniz | Ankara Kerem | İzmir Zeynep | İstanbul Mert | Bursa Elif | Ankara Baran | NULL Sena | İzmir Tuna | Adana Nil | İstanbul
Baran şehrini yazmamış. Onu "şehri bilinmeyen" olarak saymalıyız — "şehri boş string olan" değil. Bu ayrım, ileride rapor hesaplarken doğru sonuç almanı sağlayacak.
Kendini test et
Bu kodun çıktısı ne olur?
SELECT 9.0 / 2;
Cevabı gör
Çıktı:
4.5
Taraflardan biri ondalıklı olunca sonuç da ondalıklı olur.
NULL ne anlama gelir?
Sıfır sayısıBoş metin ("")Değer yok / bilinmiyor
Cevabı gör
Cevap: Değer yok / bilinmiyor
NULL bir değer değil, "burada veri yok" durumudur. 0 ve "" ise gerçek değerlerdir.