Sorgularımızda WHERE ifadesinden sonra yazdığımız olumsuzluk içeren şartları tanımlamak için NOT operatörü kullanılabilir. NOT operatörünün kullanımını basitçe örnekleyebilmek için normalizasyon kurallarına uygun olmayan personel tablosu üzerinde çalışılmıştır.
NOT operatörü mantıksal değilleme işlemi olduğundan büyüklük, küçüklük, eşitlik gibi ifadeler tersine çevirir.
NOT(… AND …) | (… OR …) |
NOT(… OR …) | (… AND …) |
NOT(… > …) | (… <= …) |
NOT(… >= …) | (… < …) |
NOT(… < …) | (… >= …) |
NOT(… <= …) | (… > …) |
NOT(… = …) | (… != …) veya (… <> …) |
NOT(… != …) veya NOT(… <> …) | (… = …) |
Örneğin, doğum yeri İstanbul olmayan kayıtlar üzerinde işlem yapılacağı zaman yazılacak şart ifadesi hem NOT kullanarak hem de NOT kullanmadan oluşturulabilir. Bu iki ifade de aslında aynı şeyi ifade etmektedir. NOT operatörü parantez içine dağıtıldığında NOT kullanılmadan yapılmış çözüm elde edilir.
Örneğin, 2000 yılında doğmayan kişiler üzerinde işlem yapmak için hem NOT kullanarak hem de NOT kullanmadan şart ifadelerimizi yazabiliriz.
NOT operatörü parantez içine dağıtıldığında büyük eşit (>=), AND, küçük eşit (<=) ifadeleri değillenir ve NOT kullanmadan yazdığımız şart ifadesini elde etmiş oluruz. Aslında her iki çözüm de aynı şeyi ifade etmektedir.
Aşağıdaki sorgu örnekleri NOT operatörünün kullanımının iyi anlaşılabilmesi için hem NOT kullanarak hem de NOT kullanmadan çözülmüştür. Personel tablosu personel numarası, ad, soyad, cinsiyet, bolum, maas, prim, işe başlama tarihi alanlarından oluşmaktadır.
NOT Sorgu Örnekleri
- ERKEK olmayan personelleri listeleyin.1SELECT * FROM personel WHERE NOT(cinsiyet='E');
veya1SELECT * FROM personel WHERE cinsiyet!='E';
veya1SELECT * FROM personel WHERE cinsiyet<>'E'; - Satış ve Bilgi işlem bölümünde çalışmayan personelleri listeleyin.1SELECT * FROM personel WHERE NOT bolum='Satış' AND NOT bolum='Bilgi işlem';
veya1SELECT * FROM personel WHERE NOT(bolum='Satış' OR bolum='Bilgi işlem');
veya1SELECT * FROM personel WHERE bolum!='Satış' AND bolum!='Bilgi işlem';
veya1SELECT * FROM personel WHERE bolum<>'Satış' AND bolum<>'Bilgi işlem';