NOT etiketine sahip kayıtlar gösteriliyor.
NOT etiketine sahip kayıtlar gösteriliyor.

SQL'de IS NULL ve IS NOT NULL Kullanımları

  • SQL'de tabloların veri alanlarına veri girilmezse o alanlara NULL değer girer.
  • NULL değeri boşluk (‘ ‘) veya sıfır (0) değerinden farklıdır. 
  • Değer atanmamış yani veri girilmemiş kayıtları listelemek için IS NULL kullanılır.
  • Bir ifadenin NULL olup olmadığını kontrol etmek için IS NOT NULL kullanılır
  • Kısaca NULL için karşılaştırma yaparken, IS NULL kullanılır. Boşluk olmayan alanlar için karşılaştırma yaparken ise IS NOT NULL kullanılır.
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu
 
Örnek Sorgu 1 : SELECT  SupplierID,  CompanyName FROM Suppliers  WHERE Fax IS NULL
(Tedarikçiler (Suppliers) tablosundan fax bilgisi girilmemiş tedarikçileri listeleyelim. ) 


Örnek Sorgu 2 : SELECT  SupplierID,  CompanyName FROM Suppliers  WHERE Fax IS NOT NULL
(Tedarikçiler (Suppliers) tablosundan fax bilgisi girilmiş tedarikçileri listeleyelim. ) 

SQL'de Mantıksal Operatörler (Logical Operators)

Mantıksal operatörler iki karşılaştırma işleminin sonucunu birleştirmek için kullanılır.
  • AND her iki taraf da True ise True, diğer durumlarda True değerini verir. Birleştirilen koşulların tümüne uyan kayıtları bize listeler.
  • OR Her iki taraf da False ise False, diğer durumlarda True değerini verir. Tanımladığımız koşullardan en az bir tanesine uyan kayıtları listeler. 
  • BETWEEN ifadesi de AND operatörü ile aynı işlemleri gerçekleştirebilmektedir. 
  • NOT operatörü ise kendisinden sonra gelen koşulu sağlamayan kayıtları listeler. 
NOT : Örnek sorgulamalarda Northwind Database'i kullanacağım. bk: Nortwind Database Kurulumu
Örnek Sorgu AND : SELECT OrderID, ShipName FROM Orders WHERE CustomerID LIKE '%EN%' AND ShipVia=3
(Orders tablosunda CustomerID değerinin içinde “EN” ifadesi geçenleri ve ShipVia değeri 3’e eşit olan verilerin tamamını listeler.)
 
 
Örnek Sorgu OR :  SELECT OrderID, ShipName, ShipVia FROM Orders WHERE OrderID LIKE 'q2313qwe12' OR ShipVia=3
(Orders tablosunda OrderID değeri 'qwe2313qwe12' değerini içerenler ya da ShipVia değeri 3’e eşit olan değer varsa sorguyu çalıştır, verileri listele.)


Örnek Sorgu NOT : SELECT OrderID, ShipName, ShipVia FROM Orders WHERE NOT (ShipVia=3 OR ShipVia=2)
(Orders tablosunda ShipVia değeri 2 ya da 3 olmayan değerleri listeler.)
 

Örnek Sorgu BETWEEN : SELECT  OrderID, OrderDate FROM Orders WHERE  OrderDate Between '1/1/1996' And '1/1/1998'
(1 Ocak 1996  ile 1 Ocak 1998 tarihleri arasındaki siparişleri listelemek isteyelim.)
 
 
NOT :
Parantez kullanımı ikiden fazla koşul olması durumunda koşulların öncelik sırasını belirler.
Parantez kullanılmaması durumunda SQL önce NOT, sonra AND ve en son da OR mantıksal operatörünü işler.