İleri SQL Dersleri 2 – SELECT LIKE Operatörü

sql LIKE operatörü WHERE koşulu altında kullanılır. Amacı arama yaptığımız kısmın belli ir parçası ile arama yapmaktır.

LIKE operatörü bir sütunda belirli bir desen aramak için kullanılır.
 
 
 
SQL LIKE Syntax

1
2
3
 SELECT column_name(s)
 FROM table_name
 WHERE column_name LIKE pattern;

 

Örnek Veritabanı
Aşağıda tanınmış Northwind örnek veritabanını kullanılıyor.

Aşağıdaki “Customers” tablosuna select çekelim.

ID CustomerName ContactName Address City Code Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

 
 
SELECT LIKE Örneği:
Aşağıdaki sorgu Customers tablosundaki city kayıtların “s” ile başlayanlarını getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE 's%';

 
Denemek İçin Tıklayınız

İPUCU: “%” işareti arama yaparken koyduğumuz yerde joker karakterdir. Olmayan kısmı tanımlamak için kullanılır.

Aşağıdaki sorgu Customers tablosundaki city kayıtların “s” ile bitenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE '%s';

 
Denemek İçin Tıklayınız

Aşağıdaki sorgu Customers tablosundaki city kayıtlarında “land” içerenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE '%land%';

 
Denemek İçin Tıklayınız

LIKE operatöründen önce NOT konulması uyuşan kısmı olanların gelmemesini sağlar.

Aşağıdaki sorgu Customers tablosundaki city kayıtlarında “land” içermeyenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City NOT LIKE '%land%';

 
Denemek İçin Tıklayınız

İPUCU: “_” işareti arama yaparken koyduğumuz yerde joker karakterdir. Konulduğu yerdeki bilinmeyen yada aranan karakterin yerine geçer. Birden fazla karakter için birden fazla kullanmak gerekir.

Aşağıdaki sorgu Customers tablosundaki city kayıtlarında herhangibir krakterle başlayım ‘erlin’ ile bitenleri getiriyor.

1
2
 SELECT * FROM Customers
 WHERE City LIKE '_erlin';

 
Denemek İçin Tıklayınız

SQL Dersleri 6 – AND ve OR Operatörleri

AND ve OR operatörleri birden fazla durumuna göre kayıtları filtrelemek için kullanılır.

Birdan fazla arama koşulumuz varsa ve bunları AND operatörü ile bir birine bağlarsak sorgumuzdan dönen değerlerin bu koşulların hepsini sağlaması gerekir.
Bu koşullar OR operatörü ile bağlanırsa sorgudan gelen değerlerin koşullardan birini sağlaması yeterli olur.

AND ve OR operatörleri raporlamalarda ve çok fazla veri içeren veritabanlarından sorgunun süresini kısaltmak için sorgulancak verileri kısıtlamak amacı ile kullanılır.

AND Operatörü Örneği:
Kişiler Tablosu:

K_Id Soyadi Adi Adres Sehir
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Şimdi, yukarıdaki Kisiler tablosundan Adi “Tove” olan ve “Sandnes” şehrinde olanları çekicek sorgumuzu yazalım.
Sorgumuz aşağıdaki gibi olur:

1
2
3
 SELECT * FROM Kisiler
 WHERE Sehir='Sandnes'
 AND Adi='Tove'

 

Sonuç aşağıdaki gibi olur:

K_Id Soyadi Adi Adres Sehir
2 Svendson Tove Borgvn 23 Sandnes

OR Operatörü Örneği:
Şimdide adi “Tove” veya “Ole” olan kişilerin sorgusunu yazalım.
Sorgu aşağıdaki gibi olmalıdır:

1
2
3
 SELECT * FROM Kisiler
 WHERE Adi='Ole'
 OR Adi='Tove'

 

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

K_Id Soyadi Adi Adres Sehir
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

AND ve OR Operatörlerinin Bir Arada Kullanılması
AND ve OR operatörlerinin beraber kullanımında karışıklıkları önlemek için genellikler parantez kullanılır.

Şimdi soyadi “Svendson” ve adida “Tove” veya “Ola” olanların sorgusunu yazalım.
Sorgu aşağıdaki gibi olur:
SQL WHERE Syntax Yapısı

1
2
3
 SELECT * FROM Kisiler WHERE
 Soyadi='Svendson'
 AND (Adi='Tove' OR Adi='Ola')

 

Sonuç aşağıdaki gibi olur:

P_Id LastName FirstName Address City
2 Svendson Tove Borgvn 23 Sandnes

SQL Dersleri 5 – WHERE Koşulu

WHERE koşulu, sorgularımızın (select, update, delete vb…) belirli bir kriteri ve koşulu yerine getirebilmesi kullanılır. Raporlamada ve güncelleme işlerimde çok büyük kolaylık ve hız sağlar.
Ayrıca birden çok tablodan veri çekeceğimiz zaman tabloların bir biri ile bağlanması içinde kullanılır. Bunu ileriki derslerimizde anlatacağım.

SQL WHERE Syntax Yapısı

1
2
3
 SELECT sütun_adlari
 FROM tablo_adi
 WHERE tablo_adi operatör değer

 

WHERE Koşulu Örneği:
The “Kisiler” tablosu:

K_Id Soyadi Adi Adres Sehir
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes
3 Pettersen Kari Storgt 20 Stavanger

Şimdi, yukarıdaki tabloda “Sandnes” adlı şehirde içinde yaşayan kişilerin seçmek için istiyorum.

Aşağıdaki SELECT sorgusu kullanalım:

1
2
 SELECT * FROM Kisiler
 WHERE Sehir='Sandnes'

 

Sonuç kümesi aşağıdaki gibi görünecektir:

K_Id Soyadi Adi Adres Sehir
1 Hansen Ola Timoteivn 10 Sandnes
2 Svendson Tove Borgvn 23 Sandnes

Sorgu içindeki metin(string) alanlar tek tırnak içinde yazılır.
Fakat sayı değerler için böyle bir kural yoktur.
Doğru Örnekler:

1
 SELECT * FROM Persons WHERE FirstName='Tove'

 

1
 SELECT * FROM Persons WHERE Year=1965

 

Yanlış Örnekler:

1
 SELECT * FROM Persons WHERE FirstName=Tove

 

1
 SELECT * FROM Persons WHERE Year='1965'

 

Where Koşulu ile Kullanılan Operatörler
WHERE yan tümcesi ile birlikte, aşağıdaki operatörler kullanılabilir:

Operatör Tanımı
= Eşittir
<> Eşit değil
> Büyüktür
< Küçüktür
>= Büyük veya eşit
<= Küçük veya eşit
BETWEEN Belli bir aralık arasında
LIKE Benzeri olanlar
IN Değişik verilerde seçme olanağı sunar

Not: SQL’in bazı sürümlerinde <> operatörü =! şeklinde yazılabilir.