SQL (Structured Query Language), veritabanlarından bilgi almak ve manipüle etmek için temel bir araçtır. Bu gücün merkezinde, verileri belirli koşullara göre filtrelememizi ve işlememizi sağlayan mantıksal ve karşılaştırma operatörleri bulunur. Bu operatörler, karmaşık sorgular oluşturarak sadece ihtiyaç duyduğumuz bilgilere erişmenin anahtarıdır. Etkili veritabanı yönetimi ve analizinde vazgeçilmez bir rol oynarlar.

SQL Karşılaştırma Operatörleri

Karşılaştırma operatörleri, bir sorguda iki ifadeyi karşılaştırarak bir koşulun doğru mu, yanlış mı yoksa bilinmeyen mi olduğunu belirlemek için kullanılır. Genellikle WHERE yan tümcesinde yer alırlar ve sorgu sonuçlarını daraltmak için temel bir mekanizmadır. Bu operatörler, sayısal, metinsel ve tarihsel değerleri karşılaştırmak için kullanılabilir.

Temel Karşılaştırma Operatörleri

  • = (Eşittir): İki değerin birbirine eşit olup olmadığını kontrol eder.
  • != veya <> (Eşit Değildir): İki değerin birbirine eşit olup olmadığını kontrol eder (farklı olup olmadıklarını).
  • > (Büyüktür): Sol taraftaki değerin sağ taraftaki değerden büyük olup olmadığını kontrol eder.
  • < (Küçüktür): Sol taraftaki değerin sağ taraftaki değerden küçük olup olmadığını kontrol eder.
  • >= (Büyük Eşittir): Sol taraftaki değerin sağ taraftaki değerden büyük veya eşit olup olmadığını kontrol eder.
  • <= (Küçük Eşittir): Sol taraftaki değerin sağ taraftaki değerden küçük veya eşit olup olmadığını kontrol eder.

Örnekler:

Aşağıdaki örneklerde, basit bir Urunler tablosu üzerinden bu operatörlerin nasıl kullanıldığını inceleyelim:


-- Fiyatı 50.00 olan ürünleri listele
SELECT UrunAdi, Fiyat FROM Urunler WHERE Fiyat = 50.00;

-- Fiyatı 100.00 olmayan ürünleri listele
SELECT UrunAdi, Fiyat FROM Urunler WHERE Fiyat != 100.00; -- Veya Fiyat <> 100.00;

-- Stok miktarı 20'den fazla olan ürünleri listele
SELECT UrunAdi, StokMiktari FROM Urunler WHERE StokMiktari > 20;

-- Fiyatı 30.00'dan az olan ürünleri listele
SELECT UrunAdi, Fiyat FROM Urunler WHERE Fiyat < 30.00;

-- Stok miktarı 10 veya daha fazla olan ürünleri listele
SELECT UrunAdi, StokMiktari FROM Urunler WHERE StokMiktari >= 10;

-- Fiyatı 75.00 veya daha az olan ürünleri listele
SELECT UrunAdi, Fiyat FROM Urunler WHERE Fiyat <= 75.00;

SQL Mantıksal Operatörler

Mantıksal operatörler, bir sorguda birden fazla koşulu birleştirmek veya mevcut bir koşulu tersine çevirmek için kullanılır. Bu operatörler, karmaşık filtreleme mantıkları oluşturarak daha spesifik veri setlerine ulaşmayı mümkün kılar. Boolean değerler (DOĞRU/YANLIŞ) üzerinde çalışırlar.

Temel Mantıksal Operatörler

  • AND: İki koşulun da doğru olması durumunda genel koşul doğru olur.
  • OR: İki koşuldan en az birinin doğru olması durumunda genel koşul doğru olur.
  • NOT: Bir koşulun mantıksal tersini alır; koşul doğruysa yanlış, yanlışsa doğru yapar.

Örnekler:

Yukarıdaki örnek tablomuzu kullanarak mantıksal operatörlerin kullanımına bakalım:


-- Kategori 'Elektronik' olan VE Fiyatı 50.00'dan yüksek olan ürünleri listele
SELECT UrunAdi, Kategori, Fiyat FROM Urunler WHERE Kategori = 'Elektronik' AND Fiyat > 50.00;

-- Kategori 'Giyim' olan VEYA Stok Miktarı 5'ten az olan ürünleri listele
SELECT UrunAdi, Kategori, StokMiktari FROM Urunler WHERE Kategori = 'Giyim' OR StokMiktari < 5;

-- Kategori 'Gıda' OLMAYAN tüm ürünleri listele
SELECT UrunAdi, Kategori FROM Urunler WHERE NOT Kategori = 'Gıda'; -- Veya Kategori != 'Gıda';

Diğer Önemli Karşılaştırma ve Mantıksal Operatörler

SQL, daha spesifik senaryolar için ek operatörler sunar. Bunlar, karşılaştırma ve mantıksal işlevleri genişleterek daha güçlü ve okunabilir sorgular yazmamızı sağlar.

  • BETWEEN: Belirli bir aralıktaki değerleri kontrol eder (dahil).
  • IN: Bir sütunun bir listedeki değerlerden herhangi birine eşit olup olmadığını kontrol eder.
  • LIKE: Bir sütunun belirli bir desene uyup uymadığını kontrol eder (metin aramaları için).
  • IS NULL / IS NOT NULL: Bir sütunun boş (NULL) olup olmadığını kontrol eder.

Örnekler:


-- Fiyatı 20.00 ile 80.00 arasında olan ürünleri listele (20 ve 80 dahil)
SELECT UrunAdi, Fiyat FROM Urunler WHERE Fiyat BETWEEN 20.00 AND 80.00;

-- Kategori 'Elektronik' veya 'Ev Gereçleri' olan ürünleri listele
SELECT UrunAdi, Kategori FROM Urunler WHERE Kategori IN ('Elektronik', 'Ev Gereçleri');

-- Ürün adında 'Bilgisayar' kelimesi geçen ürünleri listele
SELECT UrunAdi FROM Urunler WHERE UrunAdi LIKE '%Bilgisayar%'; -- % herhangi bir karakter dizisini temsil eder

-- Stok Miktarı NULL olan ürünleri listele (yani stok bilgisi girilmemiş)
SELECT UrunAdi, StokMiktari FROM Urunler WHERE StokMiktari IS NULL;

-- Stok Miktarı NULL olmayan ürünleri listele
SELECT UrunAdi, StokMiktari FROM Urunler WHERE StokMiktari IS NOT NULL;

Operatör Önceliği ve Parantez Kullanımı

Birden fazla mantıksal ve karşılaştırma operatörü içeren karmaşık sorgularda, SQL'in bir operatör önceliği kuralı vardır. Genellikle, NOT operatörü en yüksek önceliğe sahipken, ardından AND ve sonra OR gelir. Bu öncelik sırası, sorgunuzun nasıl değerlendirileceğini etkiler.

Belirli bir değerlendirme sırasını zorlamak veya varsayılan önceliği geçersiz kılmak için parantezler () kullanılır. Parantez içindeki ifadeler her zaman önce değerlendirilir, bu da sorgu mantığınızı daha okunabilir ve öngörülebilir hale getirir.

Örnek:


-- Hatalı örnek (öncelik hatası olabilir):
-- SELECT UrunAdi FROM Urunler WHERE Kategori = 'Elektronik' OR Kategori = 'Aksesuar' AND Fiyat > 100;
-- Bu sorgu, 'Aksesuar' kategorisindeki ve Fiyatı > 100 olanlar ile 'Elektronik' kategorisindeki tüm ürünleri getirecektir.

-- Doğru kullanım (parantezlerle önceliği belirtmek):
SELECT UrunAdi, Kategori, Fiyat FROM Urunler 
WHERE (Kategori = 'Elektronik' OR Kategori = 'Aksesuar') AND Fiyat > 100;
-- Bu sorgu, Kategori 'Elektronik' VEYA 'Aksesuar' olan ürünlerden, Fiyatı 100'den büyük olanları getirecektir.

Özetle, SQL'deki mantıksal ve karşılaştırma operatörleri, veritabanı sorgularının kalbini oluşturur. Bu operatörler, milyonlarca satır arasından belirli kriterlere uyan verileri hızla ayıklamamızı, karmaşık koşulları birleştirmemizi ve istenmeyen bilgileri dışarıda bırakmamızı sağlar. Etkin bir SQL kullanıcısı olmak için bu operatörleri derinlemesine anlamak ve doğru şekilde uygulamak hayati önem taşır; bunlar, veri analizi ve raporlamanın temelini oluşturur.