SQL Like Kullanımı

Merhabalar. Bugünkü yazımda sizlere “LIKE” operatörünün kullanımından bahsedeceğim.

LIKE operatörünün amacı, bir alanda yer alan bilgileri belli bir düzene göre aramaktır. Metin türündeki alanlardaki ifadeleri aramak için kullanılır. Yani; eğer tablolarımızdaki kayıtları belirlediğimiz kriterlere göre seçmek istiyorsak o zaman LIKE işlecini kullanarak amacımıza uygun aramalarımızı gerçekleştirebiliriz.

SQL LIKE operatörünün sözdizimi aşağıdaki gibidir:

SELECT alan_adları
FROM tablo_adı
WHERE sorgulanacak_alan_adı LIKE sorgulama_degeri

SQL sorgularında kullanmış olduğumuz LIKE operatörü, WHERE ifadesi ile birlikte kullanılır. Sorguya karşılık gelen özelliklerin kayıtların olup olmadığı bu şekilde kontrol edilir ve sonuçlar çekilerek karşımıza çıkar.

Örneğin tablo içerisinde “ismi ‘E’ ile başlayan kayıtları bulmak istediğimizde, yaşadığı şehrin son 2 harfi “er” ile biten kayıtları görmek istediğimizde vb.” örneklerde LIKE operatörüne ihtiyaç duyarız. Bu tarz örneklere geçmeden önce LIKE operatörü ile kullanılan joker karakterlere giriş yapalım.

SQL Joker Karakterler (WildCards)

Joker karakterler yani wildcards; tekrarlanan durum ya da işlemlerin tek seferde tanımlanmasını sağlayan özel karakterlerdir. Bir ya da birden daha fazla harf yerine geçebilirler ve sorguya bağlı olarak kullanılmaları gerekir. Fakat sadece LIKE operatörü ile kullanılırlar.

WildcardAçıklama
%Birden fazla harf ve rakamın yerini tutar.
_ (alt çizgi)Sorguda bir karakteri temsil etmek için kullanılan karakterdir.
[karakterlistesi]Herhangi bir harf yerine geçecek harf veya harfleri belirtir.
[^karakterlistesi]Karakter listesi dışındaki karakterleri içeren sorgu sonuçları için kullanılır.
[!karakterlistesi]Karakter listesi dışındaki karakterleri içeren sorgu sonuçları için kullanılır.
Joker Karakter Tablosu

Joker karakterlerin kullanımı farklı veritabanlarında değişkenlik gösterebilir. Access veritabanında “_” ifadesi yerine “?” kullanılır. SQL Server için kullanılan “%” ifadesi, Access’te “*” olarak geçer. Ayrıca SQL Server’da tek tırnakla kullanacağımız sabit metinleri Access’te çift tırnak olarak kullanmak gerekir.

Şimdi joker karakterlere ait bazı kullanımları inceleyerek örneklere bakalım.

SQL LIKE Örnekleri

Sorgularda kullanacağımız tablo personel tablosu aşağıdaki gibidir:

tablo: personel

idmusteri_admusteri_ soyadadressehiryas
1Ezgi KahramanBahçelievler mah.İstanbul45
2Kemal UsluEskiler mah.Kahramanmaraş27
3Pınar KatamanPapatya mah.Manisa36
4Zeynep ÇanlıYenisokak cad.Çanakkale25
5Sinan SarıoğluÇorak mah.İstanbul 40
Personel tablosu

Örnek-1: Soyadı “K” harfi ile başlayan personelleri seçelim.

SELECT * FROM personel
WHERE musteri_ soyad LIKE 'K%'

Sorgu çıktısı aşağıdaki gibi olur:

idmusteri_admusteri_ soyadadressehiryas
1Ezgi KahramanBahçelievler mah.İstanbul45
3Pınar KatamanPapatya mah.Manisa36
Sorgu çıktı tablosu

Sözdiziminde kullanmış olduğumuz ‘K%’ ifadesi, “kelimenin ilk harfi K ile başlasın ve diğer harfleri herhangi bir harflerle devam edebilir” anlamına gelir.

Örnek-2: Soyadının son harfi “u” olan personelleri seçiniz:

SELECT * FROM personel
WHERE musteri_ soyad LIKE '%u'

Bu halde sorgumuz şu şekilde çekilir:

idmusteri_admusteri_ soyadadressehiryas
2Kemal UsluEskiler mah.Kahramanmaraş27
5Sinan SarıoğluÇorak mah.İstanbul 40
Sonuç tablosu

Örnek-3: Bulundukları şehrin içerisinde “bul” ifadesi geçmeyen personelleri listeleyiniz:

SELECT * FROM personel
WHERE sehir NOT LIKE '%bul%'
idmusteri_admusteri_ soyadadressehiryas
2Kemal UsluEskiler mah.Kahramanmaraş27
3Pınar KatamanPapatya mah.Manisa36
4Zeynep ÇanlıYenisokak cad.Çanakkale25
Personel tablosu

Örnek-4: Bulundukları şehrin içerisinde “man” ifadesi geçen personelleri listeleyiniz:

SELECT * FROM personel
WHERE sehir LIKE ‘%man%’

Sorgu sonucu:

idmusteri_admusteri_ soyadadressehiryas
2Kemal UsluEskiler mah.Kahramanmaraş27
3Pınar KatamanPapatya mah.Manisa36
Sonuç tablosu

Örnek-5: Personel tablosunda şehir ismi “İ” ile başlayan ve yaşı 45’ten küçük olan kayıtları listeleyiniz.

SELECT * FROM personel 
WHERE adi LIKE 'İ%' AND yas<45

Sorgu sonucunda kayıtlar aşağıdaki gibi döner:

idmusteri_admusteri_ soyadadressehiryas
5Sinan SarıoğluÇorak mah.İstanbul 40
Sonuç tablosu

Örnek-6: Sondan ikinci harfi a olan müşteri isimlerini listeleyiniz.

Bu sorgunun başında harfin ne olduğu belli olmadığı için %, sonrasında a harfi, son iki karakter içinde _ (alt tire) kullanılmak gerekir.

SELECT * FROM personel
WHERE musteri_ad LIKE '%a_'

Sorgumuz sonucunda çekilen kayıtlar aşağıdaki tabloda verilmiştir.

idmusteri_admusteri_ soyadadressehiryas
2Kemal UsluEskiler mah.Kahramanmaraş27
3Pınar KatamanPapatya mah.Manisa36
5Sinan SarıoğluÇorak mah.İstanbul 40
Sonuç tablosu

Örnek-7: Yaşadığı şehrin son harfi L ve Ş ile bitmeyen personelleri listeleyiniz. 

SELECT * FROM personel
 WHERE sehir LIKE '%[^LŞ]'

Örnek-8: İsmi E,K veya Z ile başlayan öğrencileri listeleyiniz.

SELECT * FROM personel
WHERE musteri_ad LIKE '[EKZ]%'

Herkese iyi çalışmalar dilerim. Tekrar görüşmek üzere.

“SQL Like Kullanımı” için 2 cevap

  1. İSMİN İÇİND EBİRDEN FAZLA E HARFİ OLANLARI NASIL BULABİLİRİM

    Beğen

    1. Merhaba İzel Hanım,
      İçinde birden fazla “E (veya e)” harfi bulunan kelimeyi bulmak için ilgili tablo içerisindeki sütun ismini baz alarak LIKE komutu ile arama yapabilirsiniz. Örneğin müşteri adına göre arama yapmak istendiğinde;
      SELECT * FROM Musteri WHERE musteri_ad LIKE ‘%e%e%’
      komutu ile sonuca ulaşabilirsiniz. Sütun ismini değiştirerek farklı hücrelere ait yeni aramalar yapılabilir.

      Beğen

Yorum bırakın