SQL Dilinde `OR` Operatörünün Detaylı Kullanımı
Veritabanı sorgularında, belirli kriterlere uyan verileri çekmek genellikle tek bir koşuldan daha fazlasını gerektirir. SQL'deki mantıksal operatörler, bu tür karmaşık filtreleme ihtiyaçlarını karşılamak için güçlü araçlar sunar. Bu operatörlerden biri olan OR operatörü, birden fazla koşuldan en az birinin doğru olması durumunda bir kaydın sonuç kümesine dahil edilmesini sağlar. Bu makale, OR operatörünün sözdizimini, detaylı açıklamasını ve çeşitli pratik kullanım örneklerini ele alarak, veritabanı sorgularınızda çoklu koşulları etkin bir şekilde nasıl birleştireceğinizi göstermeyi amaçlamaktadır.
Sözdizimi
OR operatörü, genellikle WHERE yan tümcesi içinde, iki veya daha fazla koşulu birleştirmek için kullanılır. Genel sözdizimi aşağıdaki gibidir:
SELECT kolon1, kolon2, ...
FROM tablo_adı
WHERE koşul1 OR koşul2 OR koşul3 ...;Burada, koşul1, koşul2, koşul3 vb. birbirine OR operatörü ile bağlanan boolean ifadelerdir.
Detaylı Açıklama
SELECT kolon1, kolon2, ...: Sorgu sonucunda görüntülenmesini istediğiniz sütunları belirtir.FROM tablo_adı: Verilerin çekileceği veritabanı tablosunun adını belirtir.WHERE: Sorgu sonucunu filtrelemek için kullanılan bir yan tümcedir. Sadece belirtilen koşul veya koşulları karşılayan satırlar sonuç kümesine dahil edilir.koşul1,koşul2,koşul3: Bunlar, değerlendirilecek boolean ifadelerdir. Her koşul, bir sütun adı, bir operatör (=,>,<,>=,<=,<>,LIKEvb.) ve bir değerden oluşabilir.OR: Bu mantıksal operatör, kendisiyle birleştirilen koşullardan herhangi birinin doğru (TRUE) olması durumunda tümWHEREyan tümcesinin doğru kabul edilmesini sağlar. Eğer koşullardan biri bile doğruysa, ilgili satır sonuç kümesine dahil edilir. Sadece tüm koşullar yanlış (FALSE) olduğunda satır elenir.
Pratik Kullanım Örnekleri
Örnek 1: Tek OR ile Filtreleme
Belirli bir şehirdeki veya belirli bir departmandaki tüm çalışanları listelemek istediğinizde OR kullanabilirsiniz. Aşağıdaki örnek, 'İstanbul' şehrinde ikamet eden VEYA 'Pazarlama' departmanında çalışan tüm personeli getirir.
SELECT *
FROM Calisanlar
WHERE Sehir = 'İstanbul' OR Departman = 'Pazarlama';Bu sorgu, hem İstanbul'da yaşayan hem de Pazarlama departmanında çalışan birini, sadece İstanbul'da yaşayan ama farklı bir departmanda olanı ve sadece Pazarlama departmanında olup farklı bir şehirde yaşayanı sonuç kümesine dahil edecektir.
Örnek 2: Birden Fazla OR Kullanımı
Üç farklı şehirden (Ankara, İzmir, Bursa) müşterileri listelemek için birden fazla OR operatörü kullanabilirsiniz.
SELECT MusteriAdi, Sehir
FROM Musteriler
WHERE Sehir = 'Ankara' OR Sehir = 'İzmir' OR Sehir = 'Bursa';Bu sorgu, Sehir sütunu değeri 'Ankara', 'İzmir' veya 'Bursa' olan tüm müşterilerin adını ve şehrini döndürecektir.
Örnek 3: AND ve OR Operatörlerinin Birlikte Kullanımı
AND ve OR operatörlerini birlikte kullanırken işlem önceliğine dikkat etmek önemlidir. AND operatörü, OR operatöründen daha yüksek önceliğe sahiptir. Beklenmeyen sonuçları önlemek için parantez () kullanmak en iyi uygulamadır.
Örneğin, 'Elektronik' kategorisindeki ürünlerden, fiyatı 100'den yüksek OLAN VEYA stok adedi 50'den az OLAN ürünleri bulmak istiyoruz:
SELECT UrunAdi, Fiyat, StokAdedi, Kategori
FROM Urunler
WHERE (Fiyat > 100 OR StokAdedi < 50) AND Kategori = 'Elektronik';Bu sorguda parantezler, önce (Fiyat > 100 OR StokAdedi < 50) koşulunun değerlendirilmesini sağlar, ardından bu sonucun Kategori = 'Elektronik' koşuluyla AND operatörü ile birleştirilmesini sağlar.
Önemli Notlar
Koşulun Doğruluğu:
ORoperatörü ile birleştirilen koşullardan herhangi biri doğru olduğunda, tüm ifade doğru kabul edilir ve ilgili satır sorgu sonucuna dahil edilir.Performans Etkisi: Çok sayıda
ORkoşulu kullanmak veya indekslenmemiş sütunlar üzerindeORuygulamak, sorgu performansını olumsuz etkileyebilir. Özellikle büyük veri kümelerinde bu duruma dikkat edilmelidir.Parantez Kullanımı:
ANDveORoperatörlerini aynıWHEREyan tümcesinde kullanırken, işlem önceliğini açıkça belirtmek ve mantıksal hataları önlemek için parantez()kullanmak hayati öneme sahiptir.INOperatörü Alternatifi: Bir sütunun birden fazla belirli değere eşit olup olmadığını kontrol etmek içinORoperatörü yerineINoperatörünü kullanmak daha okunabilir ve genellikle daha performanslı bir alternatiftir. Örneğin,WHERE Sehir = 'Ankara' OR Sehir = 'İzmir' OR Sehir = 'Bursa'yerineWHERE Sehir IN ('Ankara', 'İzmir', 'Bursa')kullanımı tercih edilebilir.
        
                
            
            
Yorum yap
Yorumlar