Sql Server Like Operatörü

Herkese merhaba, Sql Server yazılarımıza kaldığımız yerden devam ediyoruz. Bu yazımızda like operatörünü anlatacağım. Hadi başlayalım !
Table of Contents
like Yapısı
like operatörü sadece Sql sorgularında where kriteri oluşturmak için kullanılır ve bir sütunda veri aramaya yarar ve yazımı şu şekildedir;
where sütun_adı like veri
like Yapısı ve Örnek Kodlar
Burada sütun_adı kısmına filtreleme yapmak istediğiniz sütunun adını, veri kısmına da like operatörü kuralını yazmanız gerekiyor. Yazdığımız bu kural ilgili sütunda aranıyor ve eşleşen veriler getiriliyor. like operatörü ile kural yazmak için % ve _ karakterleri kullanılabilmekte. % işareti sıfır, bir yada birden çok karakteri, _ karakteri ise bir karakteri temsil eder. % ve _ işaretlerini arama yapmak istediğimiz verinin arasına koyarak istediğimiz kuralı oluşturabiliriz. Örneğin a ile başlayıp 3. harfi k olan ve s ile biten şeklinde arama yapabildiğimiz gibi verinin herhangi bir yerinde softwaresup.net gibi nispeten uzun bir veri geçenleri de arayabiliriz. Ayrıca % ve _ işaretlerini istediğimiz kadar kullanabiliriz, herhangi bir sınırlaması yok. Örneğin int tipte id ve varchar tipte kitapAdi sütunları olan kitaplar adında bir tablomuzun olduğunu varsayalım ve bu tablo üzerinde like operatörünü kullanarak birkaç sorgu çalıştıralım;
select * from kitaplar where kitapAdi like 'a_k%s';
select id from kitaplar where kitapAdi like '%softwaresup.net%';
select kitapAdi from kitaplar where kitapAdi like '%';
update kitaplar set kitapAdi = 'Sefiller' where id like '%3_';
delete from kitaplar where kitapAdi like '_____';
Burada yazdığımız Sql komutlarından birincisinde kitapAdi değerinin ilk harfi a, 3. harfi k ve son harfi s olan tüm kitapları getirttik. İkinci sorguda kitapAdi değerinin içerisinde softwaresup.net geçenlerin id değerlerini getirttik. Üçüncü sorguda kitapAdi değeri herhangi bir şey olanları getirttik, yani tüm verileri getirttik. Dördüncü sorguda id değerinin sondan bir önceki karakteri 3 olan tüm kitapların kitapAdi değerini Sefiller olarak güncelledik. Son sorguda ise kitapAdi değeri 5 karakterden oluşan tüm kitapları sildik. Gördüğünüz üzere % ve _ karakterlerini kullanarak dilediğimiz gibi filtrelemeler yapabilmekteyiz.
like operatörünün tersi bir durumu da mevcut. Yani az önceki örnek sorguların ilkinde a ile başlayıp 3. harfi k ve son harfi s olan kitapları getirttik ya, bunun tersi olarak a ile başlayıp, 3. karakteri k ve son karakteri s olmayan kitapları da getirtebiliriz. Bunun için like yerine not like yazmamız gerekmekte. not like ile filtreleme yaptığımız zaman Sql Server, tüm sonuçları getirecek ve like olarak yazdığımız kuralla eşleşen verileri çıkarıp geri kalan sonuçları döndürecektir. Örneğin az önceki sorguları bide not like ile yazalım;
select * from kitaplar where kitapAdi not like 'a_k%s';
select id from kitaplar where kitapAdi not like '%softwaresup.net%';
select kitapAdi from kitaplar where kitapAdi not like '_';
update kitaplar set kitapAdi = 'Sefiller' where id not like '%3_';
delete from kitaplar where kitapAdi not like '_____';
Birinci a ile başlayıp 3. karakteri k olup s ile bitenler hariç tüm getir dedik. İkinci sorguda kitapAdi sütununda içerisinde softwaresup.net geçmeyen kitapların id değerlerini getirttik. Üçüncü sorguda kitapAdi değeri tek karakterden oluşmayan yani en az 2 karakterli olan kitapların kitapAdi değerini getirdik. Dördüncü sorguda id değerinin sondan bir önceki karakteri 3 olmayan tüm kitapların kitapAdi değerini Sefiller olarak güncelledik. Son sorguda ise 5 karakterden oluşmayan tüm kitapları sildik.
Evet Sql Server’da like operatörü kullanımı bu şekilde yapılmakta. Tüm Sql Server yazılarımıza buraya tıklayarak ulaşabilirsiniz. Herkese hayırlı günler.