Veritabanı Sorunlarını Önlemek için NULL'lerin Kullanımı
Veri tabanları dünyasına yeni gelen kullanıcılar genellikle, alana özel bir değerle karıştırılır - NULL değeri. Bu değer herhangi bir veri türü içeren bir alanda bulunabilir ve ilişkisel veritabanı bağlamında çok özel bir anlama sahiptir. NULL ile ilgili tartışmamıza NULL'ın neyle ilgili olmadığı hakkında birkaç kelime ile başlamak muhtemelen en iyisidir:
- NULL sıfır sayısı değil.
- NULL boş dize (“”) değeri değil.
Tersine, NULL bilinmeyen bir veri parçasını temsil etmek için kullanılan değerdir. Genellikle, veritabanı programcıları "NULL değeri" ifadesini kullanacaklardır, ancak bu yanlıştır. Unutmayın: NULL, alanın boş göründüğü bilinmeyen bir değerdir.
Gerçek Dünyada NULL
Basit bir örneğe bakalım: Bir meyve standı için envanteri içeren bir tablo. Envanterimizin 10 elma ve üç portakal içerdiğini varsayalım. Erikler de stoklarımız var, ama stok bilgilerimiz eksik ve stokta kaç tane (eğer varsa) erik var bilmiyoruz. NULL değerini kullanarak, aşağıdaki tabloda gösterilen stok tablosuna sahip olurduk.
Meyve Stand Envanteri
InventoryId | madde | miktar |
1 | Elmalar | 10 |
2 | portakal | 3 |
3 | Erik | BOŞ |
Erik reçetesi için 0'lık bir miktar eklemek kesinlikle yanlıştır, çünkü bu, stokta hiç erime olmadığı anlamına gelir. Aksine, biraz erik alabiliriz, ama emin değiliz.
NULL veya NULL değil mi?
Bir tablo NULL değerlerine izin verecek şekilde tasarlanıp tasarlanmayabilir.
İşte bazı NULL'lere izin veren bir Envanter tablosu oluşturan bir SQL örneğidir:
SQL> TABLE INVENTORY CREATE (InventoryID INT NOT NULL, Item VARCHAR (20) NOT NULL, Miktar INT);Envanter tablosu, Envanter Kimliği ve Öğe sütunları için NULL değerlerine izin vermez, ancak Miktar sütununa izin verir.
Bir NULL değerinin mükemmel olmasına izin verirken, NULL değerleri sorunlara neden olabilir, çünkü nULL öğesinin null olduğu değerlerin karşılaştırması her zaman NULL ile sonuçlanır.
Tablonuzun NULL değerler içerip içermediğini kontrol etmek için IS NULL veya IS NOT NULL operatörünü kullanın. İşte IS NULL bir örneğidir:
SQL> INVENTORYID, ITEM, MİKTAR SEÇENEĞİNDEN MİKTARDA NEMİN OLDUĞUNU;Bizim örneğimiz göz önüne alındığında, bu geri dönecekti:
InventoryId | madde | miktar |
---|---|---|
3 | Erik |
NULL'larda Çalışıyor
NULL değerleri ile çalışmak genellikle SQL işlemine bağlı olarak NULL sonuç üretir. Örneğin, A'nın NULL olduğunu varsayarak:
Aritmetik operatörler
- A + B = NULL
- A - B = NULL
- A * B = NULL
- A / B = NULL
Karşılaştırma Operatörleri
- A = B = NULL
- A! = B = NULL
- A> B = NULL
- A!
Bunlar, bir işlenenin NULL olması durumunda NULL değerini her zaman döndüren bazı işleç örnekleridir. Çok daha karmaşık sorgular vardır ve hepsi NULL değerleri ile karmaşıktır. Ev sahibi noktası, veritabanınızda NULL değerlerine izin verirseniz, sonuçları anlayın ve bunlar için plan yapın.
Özetle bu NULL !