SQL Dilinde LIKE Operatörü: Desen Tabanlı Arama Rehberi
SQL veritabanlarında, belirli bir desene uyan metin değerlerini aramak, veri filtreleme işlemlerinin temel bir parçasıdır. LIKE operatörü, bu tür desen tabanlı aramaları gerçekleştirmek için kullanılır. Bu operatör, tam eşleşme yerine kısmi eşleşmeleri veya belirli kalıpları içeren metinleri bulmak gerektiğinde devreye girer ve esnek sorgular oluşturmaya olanak tanır.
Sözdizimi
LIKE operatörünün genel sözdizimi aşağıdaki gibidir:
SELECT kolon_adi(lar)
FROM tablo_adi
WHERE kolon_adi LIKE desen;Detaylı Açıklama
LIKE operatörü, WHERE yan tümcesi ile birlikte kullanılarak belirtilen bir sütundaki değerlerin belirli bir desene uyup uymadığını kontrol eder. Bu deseni tanımlamak için iki özel joker karakter (wildcard character) kullanılır:
%(Yüzde İşareti): Sıfır veya daha fazla karakter dizisini temsil eder. Örneğin,'A%'ile başlayan tüm değerleri,'%A'ile biten tüm değerleri ve'%A%'ile A içeren tüm değerleri bulabilirsiniz._(Alt Çizgi): Tek bir karakteri temsil eder. Örneğin,'A_C', 'ABC', 'AEC' gibi üç karakterli ve ortasında herhangi bir karakter olan değerleri bulur.
Bu joker karakterler, arama desenini oluşturmak için birleştirilebilir.
Pratik Kullanım Örnekleri
Aşağıdaki örnekler, LIKE operatörünün farklı senaryolarda nasıl kullanıldığını göstermektedir. Bu örneklerde, bir Urunler tablosunun UrunAdi sütununda arama yaptığımızı varsayalım.
Örnek 1: Belirli Bir Harf Dizisiyle Başlayan Değerler
'Bilgisayar' kelimesiyle başlayan tüm ürün adlarını bulmak için:
SELECT UrunAdi
FROM Urunler
WHERE UrunAdi LIKE 'Bilgisayar%';Örnek 2: Belirli Bir Harf Dizisiyle Biten Değerler
'Mouse' kelimesiyle biten tüm ürün adlarını bulmak için:
SELECT UrunAdi
FROM Urunler
WHERE UrunAdi LIKE '%Mouse';Örnek 3: Belirli Bir Harf Dizisi İçeren Değerler
Ürün adında 'USB' ifadesi geçen tüm ürünleri bulmak için:
SELECT UrunAdi
FROM Urunler
WHERE UrunAdi LIKE '%USB%';Örnek 4: Belirli Bir Karakter Deseniyle Eşleşen Değerler
İkinci harfi 'a' olan ve toplamda en az üç karakterli ürün adlarını bulmak için:
SELECT UrunAdi
FROM Urunler
WHERE UrunAdi LIKE '_a%';Örnek 5: NOT LIKE Kullanımı
Belirli bir desene uymayan değerleri dışlamak için NOT LIKE operatörü kullanılır. Örneğin, 'Telefon' kelimesiyle başlamayan tüm ürün adlarını bulmak için:
SELECT UrunAdi
FROM Urunler
WHERE UrunAdi NOT LIKE 'Telefon%';Önemli Notlar
Büyük/Küçük Harf Duyarlılığı:
LIKEoperatörünün büyük/küçük harf duyarlılığı, kullanılan veritabanı sistemine (örneğin, PostgreSQL, MySQL, SQL Server) ve sütunun harmanlama (collation) ayarlarına bağlıdır. Bazı sistemler varsayılan olarak duyarsızken, bazıları duyarlı olabilir veya harmanlama ayarları ile bu durum değiştirilebilir. Büyük/küçük harf duyarlılığından bağımsız arama yapmak için genellikleLOWER()veyaUPPER()fonksiyonları ile birlikte kullanılır:WHERE LOWER(kolon_adi) LIKE LOWER('%desen%').Performans: Özellikle
'%'ile başlayan desenler (örneğin,LIKE '%desen') indeks kullanımını zorlaştırabilir ve büyük tablolarda sorgu performansını olumsuz etkileyebilir. Mümkünse, deseni bir harf veya karakter dizisiyle başlatmak (LIKE 'desen%') daha performanslı olabilir.Kaçış Karakterleri (Escape Characters): Eğer aradığınız desende
%veya_gibi joker karakterler varsa ve bunları literal olarak aramak istiyorsanız, bir kaçış karakteri (escape character) kullanmanız gerekir. Çoğu SQL veritabanı,LIKE '%50\_%' ESCAPE '\'gibi bir sözdizimine izin verir, bu da '50_' ifadesini içeren değerleri arar.Regular Expressions (Regex): Daha karmaşık desen eşleştirme ihtiyaçları için, birçok veritabanı
REGEXPveyaRLIKEgibi düzenli ifade operatörlerini destekler. Bu operatörler,LIKEoperatörüne göre çok daha güçlü ve esnek desen eşleştirme yetenekleri sunar.
        
                
            
            
Yorum yap
Yorumlar