MySQL IS NULL & IS NOT NULL ÖRNEKLERLE Öğretici

SQL'de Null hem bir değer hem de bir anahtar kelimedir. Önce NULL değerine bakalım –

MySQL BOŞTUR VE BOŞ DEĞİLDİR

Değer Olarak Boş

Basit bir ifadeyle NULL, var olmayan veriler için bir yer tutucudur. Tablolarda ekleme işlemleri yapılırken bazı alan değerlerinin kullanılamayacağı zamanlar olacaktır.

Gerçek ilişkisel veritabanı yönetim sistemlerinin gereksinimlerini karşılamak için, MySQL gönderilmemiş değerler için yer tutucu olarak NULL'u kullanır. Aşağıdaki ekran görüntüsü NULL değerlerinin veritabanında nasıl göründüğünü göstermektedir.

Değer Olarak Boş

Şimdi tartışmaya daha fazla girmeden önce NULL'un bazı temel noktalarına bakalım.

  • NULL bir veri türü değil – bu, “int”, “date” veya tanımlanmış başka bir veri türü olarak tanınmadığı anlamına gelir.
  • Aritmetik işlemler içeren NULL her zaman NULL'a dön örneğin, 69 + NULL = NULL.
  • Tüm Posterler toplama işlevleri yalnızca NULL değerleri olmayan satırları etkiler.

Şimdi count fonksiyonunun boş değerleri nasıl ele aldığını gösterelim. Üyeler tablosunun mevcut içeriğini görelim.

SELECT * FROM `members`;

Yukarıdaki betiği çalıştırmak bize aşağıdaki sonuçları verir

membership_ number full_ names gender date_of_ birth physical_ address postal_ address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL jj@fstreet.com
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345rm@tstreet.com
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
5 Leonard Hofstadter MaleNULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me

Contact_number'ını güncelleyen tüm üyeleri sayalım

SELECT COUNT(contact_number)  FROM `members`;

Yukarıdaki sorguyu çalıştırdığımızda aşağıdaki sonuçlar elde edilir.

COUNT(contact_number)
7

Not: NULL olan değerler dahil edilmemiştir

Ne değil?

NOT mantıksal operatörü Boole koşullarını test etmek için kullanılır ve koşul yanlışsa doğru değerini döndürür. NOT operatörü, test edilen koşul doğruysa false değerini döndürür

Şart DEĞİL Operator Sonuç
Gerçek Yanlış
Yanlış Gerçek

Neden NOT null kullanılıyor?

Bir sorgu sonuç kümesi üzerinde hesaplamalar yapmamız ve değerleri döndürmemiz gerekeceği durumlar olacaktır. NULL değerine sahip sütunlarda herhangi bir aritmetik işlem gerçekleştirmek, null sonuçlar döndürür. Bu tür durumların yaşanmasını önlemek amacıyla verilerimizin üzerinde çalıştığı sonuçları sınırlamak için NOT NULL ifadesini kullanabiliriz.

BOŞ DEĞİL Değerler

Bir tabloya yeni satırlar eklerken her zaman değerlerin sağlanması gereken belirli alanları içeren bir tablo oluşturmak istediğimizi varsayalım. Tabloyu oluştururken belirli bir alanda NOT NULL yan tümcesini kullanabiliriz.

Aşağıda gösterilen örnek, çalışanın verilerini içeren yeni bir tablo oluşturur. Çalışan numarası her zaman sağlanmalıdır

CREATE TABLE `employees`(
  employee_number int NOT NULL,
  full_names varchar(255) ,
  gender varchar(6)
);

Şimdi çalışan adını belirtmeden yeni bir kayıt eklemeyi deneyelim ve ne olacağını görelim.

INSERT INTO `employees` (full_names,gender) VALUES ('Steve Jobs', 'Male');

Yukarıdaki betiğin çalıştırılması MySQL workbench şu hatayı veriyor-

BOŞ DEĞİL Değerler

NULL Anahtar Kelimeler

NULL, NULL içeren değerler üzerinde Boolean işlemleri gerçekleştirirken anahtar kelime olarak da kullanılabilir. “IS/NOT” anahtar sözcüğü bu tür amaçlar için NULL sözcüğüyle birlikte kullanılır. Anahtar kelime olarak null kullanıldığında temel sözdizimi aşağıdaki gibidir

`comlumn_name'  IS NULL
`comlumn_name' NOT NULL

İŞTE

  • “BOŞ Boole karşılaştırmasını gerçekleştiren anahtar kelimedir. Sağlanan değer NULL ise true değerini, sağlanan değer NULL değilse false değerini döndürür.
  • "GEÇERSİZ DEĞİL"Boole karşılaştırmasını gerçekleştiren anahtar kelimedir. Sağlanan değer NULL değilse true değerini, sağlanan değer null ise false değerini döndürür.

Şimdi, null değerleri olan tüm sütun değerlerini ortadan kaldırmak için NOT NULL anahtar sözcüğünü kullanan pratik bir örneğe bakalım.

Yukarıdaki örnekle devam edersek, iletişim numarası boş olmayan üyelerin ayrıntılarına ihtiyacımız olduğunu varsayalım. Şu şekilde bir sorgu yürütebiliriz:

SELECT * FROM `members` WHERE contact_number IS NOT NULL;

Yukarıdaki sorgunun yürütülmesi yalnızca iletişim numarasının boş olmadığı kayıtları verir.

Diyelim ki iletişim numarasının boş olduğu üye kayıtları istiyoruz. Aşağıdaki sorguyu kullanabiliriz

SELECT * FROM `members` WHERE contact_number IS NULL;

Yukarıdaki sorguyu çalıştırmak, iletişim numarası NULL olan üye ayrıntılarını verir

membership_ number full_names gender date_of_birth physical_address postal_address contact_ number email
1 Janet Jones Female 21-07-1980 First Street Plot No 4 Private Bag 0759 253 542 janetjones@yagoo.cm
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 rm@tstreet.com
5 Leonard Hofstadter Male NULL Woodcrest NULL 845738767 NULL
6 Sheldon Cooper Male NULL Woodcrest NULL 976736763 NULL
7 Rajesh Koothrappali Male NULL Woodcrest NULL 938867763 NULL
8 Leslie Winkle Male 14-02-1984 Woodcrest NULL 987636553 NULL
9 Howard Wolowitz Male 24-08-1981 SouthPark P.O. Box 4563 987786553 lwolowitz[at]email.me

Boş değerleri karşılaştırma

Üç değerli mantık – NULL içeren koşullar üzerinde Boolean işlemleri gerçekleştirmek ya geri dönebilir “Bilinmiyor”, “Doğru” veya “Yanlış”.

Örneğin, “IS NULL” anahtar sözcüğünü kullanma karşılaştırma işlemleri yaparken NULL içeren ya geri dönebilir gerçek or yanlış. Diğer karşılaştırma işleçlerinin kullanılması getirileri “Bilinmiyor”(BOŞ).

Beş numarayı 5 ile karşılaştırdığınızı varsayalım.

SELECT 5 =5;

Sorgu sonucu 1'dir, bu da DOĞRU anlamına gelir

5 =5
1

Aynı işlemi NULL ile yapalım

SELECT NULL = NULL;
NULL = NULL
NULL

Başka bir örneğe bakalım

SELECT 5 > 5;
5 > 5
0

Sorgu sonucu 0'dır, bu da YANLIŞ anlamına gelir

Aynı örneğe NULL kullanarak bakalım

SELECT NULL > NULL;
NULL > NULL
NULL

IS NULL anahtar sözcüğünü kullanalım

SELECT 5 IS NULL;
5 IS NULL
0

Sorgu sonucu 0, yani YANLIŞ

SELECT NULL IS NULL;

NULL IS NULL
1

Sorgu sonucu 1'dir ve bu DOĞRU'dur

ÖZET

  • NULL, isteğe bağlı tablo alanları için bir değer yeri tutucusudur.
  • MySQL NULL değerini diğer veri türlerinden farklı şekilde ele alır. Bir koşulda kullanıldığında NULL değerleri, yanlış Boole değeri olarak değerlendirilir.
  • NOT mantıksal işlemi, Boolean değerlerini test etmek için kullanılır ve Boolean değeri yanlışsa doğru, Boolean değeri doğruysa yanlış olarak değerlendirilir.
  • NOT NULL yan tümcesi, bir sonuç kümesinden NULL değerleri ortadan kaldırmak için kullanılır
  • NULL değerler üzerinde aritmetik işlemler gerçekleştirmek her zaman NULL sonuçlar verir.
  • [, =, vb.] gibi karşılaştırma işleçleri NULL değerleri karşılaştırmak için kullanılamaz.