SQL Dilinde `AND` Operatörünün Kullanımı
SQL (Yapılandırılmış Sorgu Dili), veritabanlarından veri almak ve manipüle etmek için kullanılan standart dildir. Veri sorgularken, belirli kriterlere uyan kayıtları filtrelemek sıkça karşılaşılan bir gereksinimdir. Bu filtreleme işlemlerinde, birden fazla koşulu aynı anda değerlendirmek için mantıksal operatörler kullanılır. AND operatörü, bu mantıksal operatörlerden biridir ve WHERE cümleciği içinde iki veya daha fazla koşulun tümünün doğru olması durumunda kayıtları döndürmek için elzemdir. Bu makalede, SQL AND operatörünün detaylı kullanımını, sözdizimini ve pratik örneklerini inceleyeceğiz.
Sözdizimi
AND operatörünün temel sözdizimi, bir SELECT ifadesi içindeki WHERE cümleciğinde aşağıdaki gibi yapılandırılır:
SELECT kolon1, kolon2, ...
FROM tablo_adi
WHERE kosul1 AND kosul2 AND kosul3 ...;Detaylı Açıklama
SELECT kolon1, kolon2, ...:
Bu kısım, sorgu sonucunda görmek istediğiniz sütunları belirtir. Tüm sütunları seçmek için * karakterini kullanabilirsiniz.
FROM tablo_adi:
Veri çekmek istediğiniz tabloyu belirtir.
WHERE kosul1 AND kosul2 AND kosul3 ...:
Bu kısım, AND operatörünün kalbidir. WHERE cümleciği, belirtilen koşulların doğru olduğu satırları filtreler. AND operatörü, kendisinden önce ve sonra gelen koşulların (kosul1, kosul2, kosul3 vb.) tümünün aynı anda doğru (TRUE) olması durumunda o satırı sonuç kümesine dahil eder. Eğer koşullardan herhangi biri yanlış (FALSE) ise, o satır sonuç kümesine dahil edilmez. Birden fazla AND operatörü kullanarak istediğiniz kadar koşulu birleştirebilirsiniz. Her kosul, karşılaştırma operatörleri (=, <, >, <=, >=, <> veya !=) veya diğer mantıksal operatörler (LIKE, IN, BETWEEN vb.) ile oluşturulabilir.
Pratik Kullanım Örnekleri
Aşağıdaki örnekler, bir Personel tablosu üzerinden AND operatörünün farklı senaryolarda nasıl kullanıldığını göstermektedir. Personel tablosunun PersonelID, Ad, Soyad, Departman, Maas ve DogumTarihi sütunlarına sahip olduğunu varsayalım.
Örnek 1: İki Basit Koşulu Birleştirme
Departmanı 'Satış' olan ve maaşı 5000'den yüksek olan tüm personelin adını ve soyadını listeleyelim.
SELECT Ad, Soyad
FROM Personel
WHERE Departman = 'Satış' AND Maas > 5000;Açıklama: Bu sorgu, Departman sütununun değeri 'Satış' olan VE Maas sütununun değeri 5000'den büyük olan satırları getirir. Her iki koşul da aynı anda sağlanmalıdır.
Örnek 2: Üç Koşulu Birleştirme
Departmanı 'Muhasebe' olan, maaşı 6000 ile 8000 arasında olan ve 1990 yılından sonra doğmuş personeli listeleyelim.
SELECT Ad, Soyad, Maas, DogumTarihi
FROM Personel
WHERE Departman = 'Muhasebe'
  AND Maas BETWEEN 6000 AND 8000
  AND DogumTarihi > '1990-01-01';Açıklama: Burada üç koşul AND ile birleştirilmiştir: Departman 'Muhasebe' olacak, Maas 6000 ile 8000 (dahil) arasında olacak VE DogumTarihi 1990'ın ilk gününden sonra olacak. Tüm bu koşullar doğru olduğunda satır sonuç kümesine dahil edilir.
Örnek 3: `AND` ve `OR` Operatörlerini Birlikte Kullanma
Parantez kullanımı, mantıksal operatörlerin değerlendirme sırasını belirlemek için kritik öneme sahiptir. Departmanı 'İnsan Kaynakları' olan VE (maaşı 7000'den az VEYA 1985'ten önce doğmuş) personeli listeleyelim.
SELECT Ad, Soyad, Departman, Maas, DogumTarihi
FROM Personel
WHERE Departman = 'İnsan Kaynakları'
  AND (Maas < 7000 OR DogumTarihi < '1985-01-01');Açıklama: Bu sorguda, parantezler içindeki OR koşulu önce değerlendirilir. Yani, departman 'İnsan Kaynakları' olacak VE (maaş 7000'den az olacak VEYA doğum tarihi 1985'ten önce olacak) koşulu sağlanacak. Parantezler olmasaydı, AND operatörü OR operatöründen daha yüksek önceliğe sahip olduğu için sorgu farklı bir sonuç verebilirdi.
Önemli Notlar
Mantıksal Öncelik: SQL'de mantıksal operatörlerin belirli bir öncelik sırası vardır.
NOTen yüksek önceliğe sahipken, onuANDve ardındanORtakip eder. Bu,ANDoperatörlerininORoperatörlerinden önce değerlendirileceği anlamına gelir. Karmaşık koşullarda beklenen sonucu almak için parantez()kullanmak her zaman iyi bir uygulamadır.Performans:
WHEREcümleciğindeki koşulların sırası, bazı veritabanı sistemlerinde sorgu performansını etkileyebilir. Genellikle, en kısıtlayıcı koşulu (en az sayıda satırı eleyecek koşulu) ilk sıraya koymak veya dizinli (indexlenmiş) sütunlar üzerindeki koşulları öne almak performansı artırabilir. Ancak modern veritabanı optimizatörleri bu tür durumları genellikle iyi yönetir.Boş Değerler (NULL):
NULLdeğerleri ile karşılaştırma yaparken dikkatli olun.NULL AND TRUEveyaNULL AND FALSEifadelerinin sonucuNULLolur.WHEREcümleciği yalnızcaTRUEsonuçlarını döndürdüğü için,NULLsonuçlar elenir.NULLdeğerleri kontrol etmek içinIS NULLveyaIS NOT NULLoperatörlerini kullanmalısınız.Okunabilirlik: Birden fazla
ANDkoşulu kullanırken, sorgunuzu satırlara ayırarak ve girinti kullanarak daha okunaklı hale getirin.
        
                
            
            
Yorum yap
Yorumlar