IS NULL, IS NOT NULL ve COALESCE
NULL değerlerini IS NULL ile belirleyin, COALESCE / NULLIF ile değiştirin ve eksik veriler karşısında sorunsuz çalışan sorgular tasarlayın.
IS NULL, IS NOT NULL ve COALESCE, CoddyKit'te ücretsiz bir SQL Academy dersidir. Bu, 4 dersinin 4. 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 Değerlerini Sınama
IS NULL ve IS NOT NULL kullanın — hiçbir zaman = NULL kullanmayın:
SELECT * FROM users WHERE deleted_at IS NULL;
SELECT * FROM users WHERE deleted_at IS NOT NULL;= NULL Neden Sessizce Başarısız Olur
Herhangi bir şeyi NULL ile karşılaştırmak NULL (bilinmiyor) sonucunu verir. Satır elenir; ancak bir hata almadığınız için hata fark edilmeden uygulamaya girer:
SELECT * FROM users WHERE deleted_at = NULL;
-- → returns 0 rows, alwaysCOALESCE: İlk NULL Olmayan Değer
COALESCE herhangi sayıda bağımsız değişken alır ve NULL olmayan ilkini döndürür:
SELECT id,
COALESCE(nickname, full_name, email, 'Anonymous') AS display_name
FROM users;WHERE İçinde COALESCE
NULL değerini sıralanabilir veya karşılaştırılabilir bir varsayılan değere dönüştürmek için COALESCE kullanın:
-- Treat NULL last_login_at as the epoch:
SELECT * FROM users
ORDER BY COALESCE(last_login_at, '1970-01-01') DESC;NULLIF: Tersi
NULLIF(a, b), a = b olduğunda NULL, aksi takdirde a döndürür:
-- Treat 0 as missing so AVG ignores it:
SELECT AVG(NULLIF(price, 0)) FROM products;
-- Convert empty string to NULL on insert:
INSERT INTO contacts (phone) VALUES (NULLIF(:phone, ''));Koşullu Varsayılanlar için CASE
COALESCE yeterince esnek olmadığında genel amaçlı alternatif olarak CASE kullanılır:
SELECT id,
CASE
WHEN status IS NULL OR status = '' THEN 'unknown'
WHEN status = 'A' THEN 'active'
ELSE status
END AS status_label
FROM users;CHECK ve Kısıtlamalarda NULL
Bir CHECK kısıtlaması, koşul NULL olduğunda başarılı olur. NULL değerini yasaklamak istiyorsanız bunu açıkça belirtin:
CREATE TABLE prices (
amount NUMERIC(10,2),
CHECK (amount > 0) -- amount = NULL passes!
);
-- Better:
CREATE TABLE prices2 (
amount NUMERIC(10,2) NOT NULL CHECK (amount > 0)
);JOIN ON İçinde NULL
Birleştirme anahtarının NULL olduğu satır çiftleri hiçbir zaman eşleşmez — NULL = NULL sonucu NULL'dur. NULL değerinin NULL'a eşit olmasını istiyorsanız IS NOT DISTINCT FROM kullanın:
SELECT * FROM a JOIN b ON a.key IS NOT DISTINCT FROM b.key;NULL Değerleri ve UNIQUE
Standart SQL, UNIQUE kısıtlamalarında NULL değerlerini farklı kabul eder — birden çok NULL satırınız olabilir:
CREATE TABLE invites (
id BIGSERIAL PRIMARY KEY,
email VARCHAR(255) UNIQUE
);
INSERT INTO invites (email) VALUES (NULL), (NULL); -- both succeed!NULL Değerleri ve Toplama İşlevleri Özeti
Toplama işlevleri (COUNT(*) dışında) NULL değerlerini atlar.
SELECT COUNT(*) FROM users; -- all rows
SELECT COUNT(email) FROM users; -- rows where email IS NOT NULL
SELECT COUNT(DISTINCT id) FROM users;Mümkün Olduğunda Her Zaman NOT NULL Tanımlayın
NOT NULL, doğruluk için en basit ve en güçlü garantidir. Hiçbir zaman boş olmaması gereken her sütuna ekleyin.
Özet
NULL işleme, ince SQL hatalarının en büyük tek kaynağıdır.
IS NULLile sınayınCOALESCEile değiştirin- Yer tutucuyu NULL'a çevirmek için
NULLIFkullanın - Varsayılan olarak
NOT NULLkullanın
Hızlı Kontrol
NULL değilse email değerini, aksi takdirde değişmez 'no-email' değerini döndüren ifade hangisidir?
Yapay zeka eğitmeniyle SQL öğren — ücretsiz
Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.
- Kurslar
- 46
- Dersler
- 183
Sıkça Sorulan Sorular
“IS NULL, IS NOT NULL ve COALESCE” dersi ücretsiz mi?
Evet — “IS NULL, IS NOT NULL ve COALESCE” 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.
“IS NULL, IS NOT NULL ve COALESCE” dersinde ne öğreneceğim?
NULL değerlerini IS NULL ile belirleyin, COALESCE / NULLIF ile değiştirin ve eksik veriler karşısında sorunsuz çalışan sorgular tasarlayı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 4. dersidir.
“IS NULL, IS NOT NULL ve COALESCE” 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
- LIKE Kalıpları ve Joker Karakterler
- Kümeler için IN ve NOT IN
- Aralıklar için BETWEEN
- IS NULL, IS NOT NULL ve COALESCE