Softmush.com, teknoloji, yazılım ve dijital dünyaya dair derinlemesine içeriklerle bilgiye ulaşmanın güvenilir adresi. - Softmush.com
“ Söz konusu olan vatansa, gerisi teferruat. ”
Mustafa K. Atatürk
SQL Dilinde NULL Değerlerin Etkili Kullanımı

SQL Dilinde NULL Değerlerin Etkili Kullanımı

Veritabanı yönetim sistemlerinde, bir sütundaki veri değerinin bilinmediğini, uygulanabilir olmadığını veya henüz atanmadığını belirtmek için NULL anahtar kelimesi kullanılır. Bu özel değer, diğer veri türlerinden farklı olarak, bir sayıyı (örneğin 0) veya boş bir karakter dizisini (örneğin '') temsil etmez; aksine, bir değerin yokluğunu veya belirsizliğini ifade eder. SQL sorgularında NULL değerlerle doğru bir şekilde çalışabilmek, veri bütünlüğünü sağlamak ve beklenen sonuçları elde etmek için kritik öneme sahiptir.


Sözdizimi


SQL'de NULL değerleri sorgulamak ve yönetmek için genellikle IS NULL, IS NOT NULL operatörleri ve COALESCE gibi özel fonksiyonlar kullanılır. Temel kullanım yapıları aşağıdaki gibidir:



-- Bir sütunda NULL değerleri seçmek için:
SELECT column_name(s)
FROM table_name
WHERE column_name IS NULL;

-- Bir sütunda NULL olmayan değerleri seçmek için:
SELECT column_name(s)
FROM table_name
WHERE column_name IS NOT NULL;

-- NULL değerleri alternatif bir değerle değiştirmek için:
SELECT COALESCE(column_name, default_value) AS new_column_name
FROM table_name;

Detaylı Açıklama


NULL Nedir?


SQL'deki NULL, bir değerin yokluğunu temsil eder. Bu, bir sütunun o satır için herhangi bir bilgi içermediği veya bu bilginin bilinmediği anlamına gelir. NULL, sıfırdan, boş bir karakter dizisinden veya boşluktan farklıdır. Örneğin, bir kullanıcının telefon numarasının NULL olması, o kullanıcının telefon numarasının olmadığını veya bilinmediğini ifade eder; '0' olması ise telefon numarasının 0 olduğunu gösterir.


IS NULL Operatörü


IS NULL operatörü, belirli bir sütundaki değerin NULL olup olmadığını kontrol etmek için kullanılır. Geleneksel karşılaştırma operatörleri (=, <>, !=) NULL değerlerle doğru şekilde çalışmadığı için bu operatör zorunludur. WHERE koşulunda kullanılarak, belirtilen sütunda NULL değeri bulunan tüm satırları döndürür.


IS NOT NULL Operatörü


IS NOT NULL operatörü, IS NULL operatörünün zıttıdır. Bir sütundaki değerin NULL olmadığını kontrol etmek için kullanılır. Bu operatör, belirli bir sütunda geçerli (NULL olmayan) bir değere sahip olan tüm satırları seçmek istediğinizde faydalıdır.


COALESCE Fonksiyonu


COALESCE fonksiyonu, kendisine verilen ifadeler listesinden NULL olmayan ilk ifadeyi döndürür. Bu fonksiyon, bir sütundaki NULL değerleri okunaklı bir varsayılan değerle (örneğin 'Bilinmiyor' veya 0) değiştirmek istediğinizde çok kullanışlıdır. Eğer tüm ifadeler NULL ise, COALESCE de NULL döndürür.


NULL ile Karşılaştırmalar


SQL'de NULL değerleri doğrudan diğer değerlerle (hatta başka bir NULL ile bile) = veya <> gibi operatörlerle karşılaştırmak her zaman UNKNOWN (bilinmeyen) sonucunu verir. Örneğin, NULL = NULL ifadesi TRUE döndürmez, UNKNOWN döndürür. Bu nedenle, NULL değerleri test etmek için mutlaka IS NULL veya IS NOT NULL operatörleri kullanılmalıdır.


Örnekler


Aşağıdaki örnekler, NULL değerlerin SQL sorgularında nasıl kullanıldığını göstermektedir. İlk olarak, örnek bir tablo oluşturalım ve içine veri ekleyelim:



-- 1. Örnek Tablo Oluşturma ve Veri Ekleme
CREATE TABLE Calisanlar (
    CalisanID INT PRIMARY KEY,
    Ad VARCHAR(50) NOT NULL,
    Soyad VARCHAR(50) NOT NULL,
    Email VARCHAR(100),
    Telefon VARCHAR(15),
    DepartmanID INT
);

INSERT INTO Calisanlar (CalisanID, Ad, Soyad, Email, Telefon, DepartmanID) VALUES
(1, 'Ayşe', 'Yılmaz', 'ayse.yilmaz@example.com', '5551234567', 101),
(2, 'Mehmet', 'Demir', NULL, '5557654321', 102),
(3, 'Zeynep', 'Kaya', 'zeynep.kaya@example.com', NULL, 101),
(4, 'Ali', 'Can', 'ali.can@example.com', '5559876543', 103),
(5, 'Elif', 'Aksoy', NULL, NULL, 102),
(6, 'Deniz', 'Çelik', 'deniz.celik@example.com', '5551112233', NULL);

IS NULL Kullanımı


Email adresi NULL olan çalışanları listelemek:



SELECT CalisanID, Ad, Soyad, Email
FROM Calisanlar
WHERE Email IS NULL;

Bu sorgu, Mehmet Demir ve Elif Aksoy'un kayıtlarını döndürecektir.


IS NOT NULL Kullanımı


Telefon numarası tanımlanmış (NULL olmayan) çalışanları listelemek:



SELECT CalisanID, Ad, Soyad, Telefon
FROM Calisanlar
WHERE Telefon IS NOT NULL;

Bu sorgu, Ayşe Yılmaz, Mehmet Demir, Ali Can ve Deniz Çelik'in kayıtlarını döndürecektir.


COALESCE Kullanımı


Email adresi NULL olan çalışanlar için 'Email Yok' yazısını göstermek:



SELECT
    CalisanID,
    Ad,
    Soyad,
    COALESCE(Email, 'Email Yok') AS GosterilenEmail
FROM Calisanlar;

Bu sorgu, Mehmet Demir ve Elif Aksoy'un Email sütununda 'Email Yok' ifadesini gösterecektir.


Birden Fazla NULL Kontrolü


Hem Email hem de Telefon bilgisi NULL olan çalışanları bulmak:



SELECT CalisanID, Ad, Soyad, Email, Telefon
FROM Calisanlar
WHERE Email IS NULL AND Telefon IS NULL;

Bu sorgu, Elif Aksoy'un kaydını döndürecektir.


Önemli Notlar


  • NULL ve Sıfır/Boş String Farkı: NULL, matematiksel sıfırdan (0) veya boş karakter dizisinden ('') farklıdır. Bu değerler birer veri değeriyken, NULL bir değerin yokluğunu ifade eder. Karşılaştırmalarda bu farka dikkat edilmelidir.

  • Karşılaştırma Operatörleri: =, <>, != gibi standart karşılaştırma operatörlerini NULL değerlerle kullanmaktan kaçının. Bu operatörler NULL ile karşılaştırıldığında her zaman UNKNOWN döndürür ve beklenen sonucu vermez. Daima IS NULL veya IS NOT NULL kullanın.

  • Toplama Fonksiyonları ve NULL: COUNT(), SUM(), AVG() gibi toplama (aggregate) fonksiyonları genellikle NULL değerleri hesaplamalarına dahil etmez. Örneğin, AVG(SutunAdı), SutunAdı içindeki NULL değerleri göz ardı ederek ortalamayı hesaplar. Ancak COUNT(*), NULL değerleri de içeren tüm satırları sayar.

  • NOT IN ve NULL: NOT IN operatörü ile NULL değerleri kullanırken dikkatli olun. Eğer NOT IN listesinde bir NULL değer varsa, sorgu beklenmedik şekilde hiçbir sonuç döndürmeyebilir çünkü NULL ile yapılan herhangi bir karşılaştırma UNKNOWN sonucunu verir. Örneğin, SELECT * FROM Tablo WHERE Deger NOT IN (1, 2, NULL); sorgusu UNKNOWN nedeniyle sorunlara yol açabilir.

  • Veritabanı Tasarımı: Tablo oluştururken bir sütunun NULL değer kabul edip etmeyeceğini NULL veya NOT NULL kısıtlamaları ile belirleyebilirsiniz. NOT NULL kısıtlaması, o sütunun her zaman bir değer içermesini sağlar ve veri bütünlüğünü artırır.

Yayınlanma Tarihi: 2025-10-15 22:00:37
JavaScript Dilinde Diziler (Arrays) Kullanımı
Önceki Haber

JavaScript Dilinde Diziler (Arrays) Kullanımı

JavaScript Makaleleri
Sonraki Haber

PHP Dilinde Hata ve İstisna Yönetimi

PHP Makaleleri
PHP Dilinde Hata ve İstisna Yönetimi

Yorum yap

Yorum yapabilmek için  giriş  yapmalısınız.

Yorumlar

Bu yazı hakkında henüz yorum yapılmamıştır.
× SQL Aggregate Functions: Veri Kümelerini Özetleme ve Analiz Etme Rehberi
Bu ilginizi çekebilir

SQL Aggregate Functions: Veri Kümelerini Özetleme ve Analiz Etme Rehberi

SQL (Structured Query Language), veritabanlarındaki büyük veri kümelerini yönetmek ve...