Sql ile bizler veri sorgulama işlemini yaparken where komutunun yanında yardımcı olması adına Sql like operatörünü kullanma işlemini gerçekleştiririz. Bu sayede where komutunun yetersiz kaldığı sorgulama cümlesinde bizler like komutunu ekleyerek farklı sorgulama işlemleri gerçekleştirebilmemiz mümkündür.
Bu sayede artık bizler belirli bir koşula sahip olan sorgu cümlesinden gelen sonuçlardan bir filtreleme özelliği gibi düşünebiliriz, belirli bir içerisinde isim geçen, ikinci karakteri şu harf olan gibi sonuçları elde etmemiz mümkün olacaktır. Where cümlesinde ki gibi direkt olarak tüm sonuçları sorgulamak yerine o sonuçlar içerisinden seçim yapmamız mümkün hale gelmektedir.
SQL Like Kullanımı
Öncelikle bilmemiz gereken bizim where cümlesinden sonrasında like komutunu kullanacak olmamızdır. Sql like komutu ile bilmemiz gereken en önemli olan şey ise bizim bunun yanında joker olarak kullanacağımız karekterleridir. Bunlar :
- Yüzde işareti (%)
- Alttan tire işareti (_)
‘dir. Bu işaretler sayesinde bizler sorgu cümlemizi daha da şekillendireceğiz anlamına gelmektedir. Bizim için yüzde işareti where komutu ile karşımıza gelen sonuçların içinden belirli bir harf, karakteri aramamız sağlar iken alttan tire işareti ise karakter atla anlamına gelmektedir. Biz sorgulayacağımız sonuç içinden içinde a olan harfleri getir derken yüzde işaretini kullanır iken ikinci harfi a olan sonuçları getirmesini istediğimiz zaman ise alttan tire işaretini kullanmamız gerekecektir.
select * from ilktablo where bolum like 's%'
Yukarıda yer alan sorgu cümlesinde ise bizim istediğimiz sonuç başı “s” ile başlayan “ilktablo” ‘tablosunda yer alan “bölüm” kolonunda ki verileri getirmesini istemiş bulunduk. Yani yüzde işaretine sona koyarsak biz baştan arama yapmasını sağlamış bulunuyoruz.
select * from ilktablo where bolum like '%s'
Eğer yukarıda ki şekilde başına yüzde işaretini koysaydık bizim için sonuç değişecektir. Bu sefer ise sonunda “s” harfi olan “ilktablo” ‘tablosunda yer alan “bölüm” kolonunda ki verileri getirmesini istemiş bulunduk. Yani bizim bölüm kolonunda yer alan verilerden sonu “s” harfi biten bir bölüm var ise karşımıza sonuç getirecektir. Sadece bu tek bir harf olarak düşünmemek gerekir. İstediğiniz şekilde bir şeyler yazabilirsiniz. Örneğin “al” yazsaydınız sonu “Sayısal” gibi biten ve sonunda “al” bulunan sonuçları karşımıza listeleyecektir.
select * from ilktablo where bolum like '%ar%'
Yukarıda yer alan kullanım şeklinde ise sağdan baksak yüzde işareti var soldan baksak yüzde işareti var bu durumda ise bize bu sonucun ne getireceğini merak ediyor musunuz ? Evet evet bu sonuç bizlere içinde ar kelimesi geçen bütün sonuçları listeleyecektir. Yani biz illa başından yada sonunda şu harf yada harfler olan sonuçları göstermesi yerinde her hangi bir sorgulanan sonucun içinde “ar” harfleri geçiyor mu bakmaktadır. Başta, ortada yada sonda olması önemli olmadan karşımıza sonuçlar gelecektir. Bunu tek harf yada birden fazla harfler şeklinde kullanabilmekte doğal olarak sorgu cümlemizi başarılı bir şekilde çalıştıracaktır.
select * from ilktablo where bolum like '_a%'
Şimdi ise alttan tire işaretinin kullanıma geçeceğimiz için biz yukarıda ki sorgu cümlesine baktığımızda baştan arama yaparak “a” harfini aramasını istemiş bulunduk. Fakat birde ne görelim a harfinin önünde bir alttan tire işareti var. Bu işaret bilgisayara yada sunucuya ilk karakteri atla ve baştan ikinci harfi a olan sonuçları getir demektedir. Eğer biz bir tane değilde iki tane alttan tire işareti koysaydık bu sefer baştan iki karakter atla ve üçüncü karakteri a olan sonuçları listele anlamına gelecektir.
select * from ilktablo where bolum like '%a_'
Bu sefer ise yüzde işareti ile alttan tire işaretinin yerlerini değiştirdiğimiz yüzde işareti başa gelirse sondan arama yapacağının göstergesiydi. Alttan tire işaretimiz ise bize bir karakter atlamasını istiyordu. Yani yukarıda ki sorgu cümlesine baktığımızda ise sondan ikinci harfi “a” olan sonuçları listelemesini bilgisayar yada sunucudan istediğini sizinde söylediğinizi duyar gibiyim.
select * from ilktablo where bolum like 's_%_%'
Eyvah eyvah ! Bu sefer ise yukarıda hiç böyle bir örnek görmedik ki buda ne şimdi diyorsunuz biliyorum. En azından şöyle bir düşünce yürütebiliriz. En sonda ki işaretten gidelim yani bizim aramamamızı baştan başlatacağı anlamına gelmektedir. İlk karakterimizin “s” olması ise birinci kural. Daha sonrasında ise iki tane alttan tire ve arasına gelen yüzdelik işareti bizim “s” dahil en az üç karaktere sahip sonuçları karşımıza getirilmesi için verilen komut olduğunu belli etmektedir.