MS SQL Dersleri – 5 LIKE ve NOT LIKE Kullanımı
WHERE komutu ile birlikte kullanabileceğiz çok farklı varyasyonlarla data çekmemizi sağlayan LIKE ve NOT LIKE operatörlerini inceleyeceğiz.
Öncelikle müşteri tablomuzda ki dataları görelim.

LIKE Operatörü
LIKE operatörü tablomuzda bulunan kayıtlardan belirli şartlara uygun olanları listelemek için kullanılır. LIKE kullanımı için belirli karakterler ve formatlar mevcuttur. Kısaca bunlara değinelim.
Karakter | Açıklama |
---|---|
% | Birden fazla karakter için kullanılır. |
_ | Sadece tek bir karakter için kullanılır. |
[] | Belirli bir karakter aralığı için kullanılır. |
% Kullanımı
--Soyadı 'ba' ile başlayan kayıtlar
SELECT *
FROM dbo.Musteri
WHERE Soyadi LIKE 'ba%'
--Soyadı 'vi' ile biten kayıtlar
SELECT *
FROM dbo.Musteri
WHERE Soyadi LIKE '%vi'
--Soyadı içersinde 'ld' karakteri geçen kayıtlar
SELECT *
FROM dbo.Musteri
WHERE Soyadi LIKE '%ld%'
Sorgu sırasına göre sonuçları görelim.

Örnekleri incelediğimizde ‘%’ karakteri eklendiği yere göre verdiğimiz değerin dışında ki tüm karakterlerin yerine geçtiğini görüyoruz.
_ Kullanımı
--Soyadı 'Başa' ile başlasın ve son karakterin ne olduğu önemli olmasın.
SELECT *
FROM dbo.Musteri
WHERE Soyadi LIKE 'Başa_'
--Soyadı 'ravi' ile bitsin ve ilk karakterin ne olduğu önemli olmasın.
SELECT *
FROM dbo.Musteri
WHERE Soyadi LIKE '_ravi'
--Soyadı 'dız' ile bitsin ve ilk üç karakterin ne olduğu önemli olmasın.
SELECT *
FROM dbo.Musteri
WHERE Soyadi LIKE '___dız'
Sorgu sırasına göre sonuçları görelim.

Örnekleri incelediğimizde ‘_’ karakteri eklendiği yere göre verdiğimiz değerin dışında ki tek bir karakterin yerine geçtiğini görüyoruz.
[] Kullanımı
--Soyadı B veya A harfi ile başlasın kayıtlar.
SELECT *
FROM dbo.Musteri
WHERE Soyadi LIKE '[B,A]%'
--Soyadı H ve Z arasında herhangi bir harf ile başlayan kayıtlar.
SELECT *
FROM dbo.Musteri
WHERE Soyadi LIKE '[H-Z]%'
--Soyadı K ve Z arasında herhangi bir harf ile biten kayıtlar.
SELECT *
FROM dbo.Musteri
WHERE Soyadi LIKE '%[K-Z]'
Sorgu sırasına göre sonuçları görelim.

Örnekleri incelediğimizde ‘[]’ karakterleri belirli karakter aralığı için kullanıldığını görüyoruz.
NOT LIKE Operatörü
NOT LIKE operatörü LIKE için anlattığımız tüm işlemlerin tam tersi şeklinde işlem görür. Basit bir örnek ile değinirsek.
--Soyadı A ile başlamayan kayıtları getirir.
SELECT *
FROM dbo.Musteri
WHERE Soyadi NOT LIKE 'A%'
Sonucu görelim.

Sonucu incelediğimizde NOT LIKE verdiğimiz değerin dışında ki dataları bize getirdi. LIKE için verdiğimiz tüm örneklerde aynı şekilde NOT LIKE kullanarak tam tersi işlemler yapabilirsiniz.
- LIKE ve NOT LIKE operatörlerini aynı şekilde UPDATE ve DELETE komutlarımız içinde kullanabiliriz.
Bir yazımızın daha sonuna geldik. Konuyla ilgili eksik gördüğünüz veya sormak istediğiniz sorular için mail adresimden veya yorumlardan bana ulaşabilirsiniz.