MySQL NULL & ÖRNEKLERLE BOŞ Öğretici DEĞİLDİR

İçindekiler:

Anonim

SQL'de Null hem bir değer hem de bir anahtar sözcüktür. Önce NULL değerine bakalım -

Değer Olarak Null

Basit bir ifadeyle, NULL, var olmayan veriler için bir yer tutucusudur. Tablolar üzerinde ekleme işlemleri gerçekleştirirken, 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 kullanır. Aşağıdaki ekran görüntüsü, NULL değerlerin veritabanında nasıl göründüğünü gösterir.

Şimdi tartışmaya girmeden önce NULL için bazı temel bilgilere bakalım.

  • NULL bir veri türü değildir - bu, bir "int", "tarih" veya herhangi bir tanımlanmış veri türü olarak tanınmadığı anlamına gelir.
  • NULL içeren aritmetik işlemler her zaman NULL döndürür , örneğin 69 + NULL = NULL.
  • Tüm toplama işlevleri yalnızca NULL değerleri olmayan satırları etkiler .

Şimdi count fonksiyonunun null değerleri nasıl ele aldığını gösterelim. Üye tablosunun güncel 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 This email address is being protected from spambots. You need JavaScript enabled to view it.
2 Janet Smith Jones Female 23-06-1980 Melrose 123 NULL NULL This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
4 Gloria Williams Female 14-02-1984 2nd Street 23 NULL NULL NULL
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

Kontak_numarasını güncellemiş olan tüm üyeleri sayalım

SELECT COUNT(contact_number) FROM `members`;

Yukarıdaki sorguyu yürütmek bize aşağıdaki sonuçları verir.

 
COUNT(contact_number)
7

Not: NULL olan değerler dahil edilmemiştir

Ne değil?

Mantıksal DEĞİL operatörü, Boole koşullarını test etmek için kullanılır ve koşul yanlışsa doğru döndürür. NOT operatörü, test edilen koşul doğruysa yanlış döndürür

Durum

DEĞİL Operatör Sonucu

Doğru

Yanlış

Yanlış

Doğru

Neden boş DEĞİL kullanıyorsunuz?

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

BOŞ DEĞİL Değerler

Bir tabloya yeni satırlar eklerken her zaman değerlerle sağlanması gereken belirli alanlara sahip bir tablo oluşturmak istediğimizi varsayalım. Tabloyu oluştururken belirli bir alanda NOT NULL cümlesini 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 eklemeye çalışalım ve ne olacağını görelim.

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

Yukarıdaki betiği MySQL tezgahında çalıştırmak aşağıdaki hatayı verir -

NULL Anahtar Kelimeler

NULL, NULL içeren değerler üzerinde Boole işlemleri gerçekleştirirken bir anahtar sözcük olarak da kullanılabilir. "IS / NOT" anahtar sözcüğü, bu tür amaçlar için NULL sözcüğü ile 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

  • "IS NULL" , Boole karşılaştırmasını gerçekleştiren anahtar sözcüktür. Sağlanan değer NULL ise true, sağlanan değer NULL değilse false döndürür.
  • "NOT NULL" , Boole karşılaştırmasını yapan anahtar kelimedir. Sağlanan değer NULL değilse true, sağlanan değer null ise false döndürür.

Şimdi, null değerlere sahip tüm sütun değerlerini elemek için NOT NULL anahtar sözcüğünü kullanan pratik bir örneğe bakalım.

Yukarıdaki örnekten devam edersek, iletişim numarası boş olmayan üyelerin detaylarına ihtiyacımız olduğunu varsayalım. Gibi bir sorgu yürütebiliriz

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

Yukarıdaki sorguyu yürütmek, yalnızca iletişim numarasının boş olmadığı kayıtları verir.

İletişim numarasının boş olduğu üye kayıtları istediğimizi varsayalım. Aşağıdaki sorguyu kullanabiliriz

SELECT * FROM `members` WHERE contact_number IS NULL;

Yukarıdaki sorguyu yürütmek, iletişim numarası BOŞ olan üye bilgilerini 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 This email address is being protected from spambots. You need JavaScript enabled to view it.
3 Robert Phil Male 12-07-1989 3rd Street 34 NULL 12345 This email address is being protected from spambots. You need JavaScript enabled to view it.
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ğer karşılaştırma s

Üç değerli mantık - NULL içeren koşullarda Boole işlemleri gerçekleştirmek ya "Bilinmeyen", "Doğru" veya "Yanlış" döndürebilir .

Örneğin, NULL içeren karşılaştırma işlemleri yaparken "IS NULL" anahtar sözcüğünü kullanmak ya doğru ya da yanlış döndürebilir . Diğer karşılaştırma işleçlerinin kullanılması "Bilinmeyen" (NULL) döndürür.

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

SELECT 5 =5;

Sorgu sonucu 1, yani DOĞRU

 
5 =5
1

NULL ile aynı işlemi yapalım

SELECT NULL = NULL;
 
NULL = NULL
NULL

Başka bir örneğe bakalım

SELECT 5 > 5;
 
5> 5
0

Sorgu sonucu 0 olup, YANLIŞ anlamına gelir

NULL kullanarak aynı örneğe 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 ve YANLIŞ

SELECT NULL IS NULL;
 
NULL IS NULL
1

Sorgu sonucu 1, yani DOĞRU

Özet

  • NULL, isteğe bağlı tablo alanları için bir değer yer 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, Boole değerlerini test etmek için kullanılır ve Boolean değeri yanlışsa doğru, Boole değeri doğruysa yanlış olarak değerlendirilir.
  • NOT NULL yan tümcesi, bir sonuç kümesinden NULL değerleri elemek için kullanılır.
  • NULL değerler üzerinde aritmetik işlemler gerçekleştirmek her zaman NULL sonuçlar verir.
  • NULL değerleri karşılaştırmak için [, =, vb.] Gibi karşılaştırma operatörleri kullanılamaz.