SQL LIKE İŞARETLERİNİN Kullanımı
LIKE operatörü tablomuzda bulunan kayıtlardan belirttiğimiz kriterler uygun olanları seçmek için kullanılır. Ancak bazı durumlarda farklı ihtiyaçlar söz konusu olabilir.
Bu tip bir durumda LIKE ifadesinden sonra bazı özel işretler kullanılarak istenilen sonuçlara ulaşılabilir.
LIKE İşaretleri Tablosu
İşaret |
Açıklaması |
% |
Birden
çok karakterin yerine kullanılır |
_ |
Sadece
bir karakterin yerine kullanılır. |
[karakter_listesi] |
Köşeli
parantez ile belirtilen harf listesi % işareti ile kullanılır. |
LIKE bir operatördür ve WHERE ile kullanılır. Yani eşittir, büyüktür veya
küçüktür işareti yerine kullanılır.
Örnek Tablo Uygulaması:
Örnek olarak aşağıdaki gibi Personel isimli tablomuz olsun.
id |
Adi_soyadi |
Sehir |
Bolum |
Meslek_Kodu |
1 |
Salih
ESKİOĞLU |
İstanbul |
Bilgi İşlem
Sorumlusu |
1234567 |
2 |
Ayhan
ÇETİNKAYA |
İzmit |
İdari İşler
Yöneticisi |
2345678 |
3 |
Serkan
ÖZGÜREL |
İzmir |
Finans Yöneticisi |
3456789 |
4 |
İlhan
ÖZLÜ |
İstanbul |
Muhasebe |
7765677 |
Örnek1:
SELECT *
FROM Personel
WHERE Sehir LIKE 'İ%'
Bu örnekte Sehir alanında İ harfi ile başlayan kayıtlar
seçilmiştir. % işareti İ harfinden sonra kalan karakteri temsil eder. Yani bu
sorgunun anlamı: Sehir alanındaki verilerden İ harfi ile başlayan kayıtları seç.
Çıktısı:
id |
Adi_soyadi |
Sehir |
Bolum |
Meslek_Kodu |
1 |
Salih
ESKİOĞLU |
İstanbul |
Bilgi İşlem
Sorumlusu |
1234567 |
3 |
İlhan
ÖZLÜ |
İstanbul |
Muhasebe |
7765677 |
Örnek2:
SELECT *
FROM Personel
WHERE Bolum LIKE '%Yönetici%'
Bu kodda Bolum alanının herhangi bir yerinde (başında, ortasında veya sonunda)
Yönetici kelimesini seçecektir.
Çıktısı:
2 |
Ayhan
ÇETİNKAYA |
İzmit |
İdari İşler
Yöneticisi |
2345678 |
3 |
Serkan
ÖZGÜREL |
İzmir |
Finans Yöneticisi |
3456789 |
ÖNEMLİ BİLGİ: NOT kelimmesi ile belirtilen değere sahip
olmayan kayıtlar seçilir
Örnek3:
SELECT *
FROM Personel
WHERE Bolum NOT LIKE '%Yönetici%'
Bu kod Bolum alanının herhangi bir yerinde Yönetici yazmayan kayıtları
seçer.
Çıktısı:
id |
Adi_soyadi |
Sehir |
Bolum |
Meslek_Kodu |
1 |
Salih
ESKİOĞLU |
İstanbul |
Bilgi İşlem
Sorumlusu |
1234567 |
4 |
İlhan
ÖZLÜ |
İstanbul |
Muhasebe |
7765677 |
Örnek4:
SELECT *
FROM Personel
WHERE Sehir LIKE 'İzmi_'
Bu kod Sehir alanının İzmi ile başlayan ve son harfi ne olursa olsun farketmeyen kayıtları
seçer.
Çıktısı:
id |
Adi_soyadi |
Sehir |
Bolum |
Meslek_Kodu |
2 |
Ayhan
ÇETİNKAYA |
İzmit |
İdari İşler
Yöneticisi |
2345678 |
3 |
Serkan
ÖZGÜREL |
İzmir |
Finans Yöneticisi |
3456789 |
Örnek5:
SELECT *
FROM Personel
WHERE Adi_soyadi LIKE '[S,A]%'
Bu kod Adi_soyadi alanındaki ilk harfi S veya A ile başlayan kayıtları
seçer. Son kayıt İ harfi ile başladığı için seçilmemiştir.
Çıktısı:
id |
Adi_soyadi |
Sehir |
Bolum |
Meslek_Kodu |
1 |
Salih
ESKİOĞLU |
İstanbul |
Bilgi İşlem
Sorumlusu |
1234567 |
2 |
Ayhan
ÇETİNKAYA |
İzmit |
İdari İşler
Yöneticisi |
2345678 |
3 |
Serkan
ÖZGÜREL |
İzmir |
Finans Yöneticisi |
3456789 |
Örnek6:
SELECT *
FROM Personel
WHERE Adi_soyadi LIKE '[A-K]%'
Bu kod Adi_soyadi alanındaki, ilk harfi A ile K harfleri arasında ki herhangi
bir harf ile başlayan kayıtları
seçer. Bu koda uyan sadece bir kayıt vardır. Adi_soyadi alanındaki diğer
kayıtlar S ve İ ile başladığından dolayı
Çıktısı:
id |
Adi_soyadi |
Sehir |
Bolum |
Meslek_Kodu |
2 |
Ayhan
ÇETİNKAYA |
İzmit |
İdari İşler
Yöneticisi |
2345678 |