28 Haziran 2015 Pazar

Temel SQL Dersi 10: BETWEEN Elemanı



BETWEEN Elemanı


BETWEEN işleci adından da anlaşılacağı üzere bir alanın değerinin iki değer arasında olup olmadığına dair koşul tanımlamak istediğimizde kullanılır. (garip bir cümle oldu. farkındayım) Örneğin “yaşı 20 ile 30 arasında olanlar” gibi bir koşulu SQL ile yazabilmek için BETWEEN işlecini kullanırız. Kullanımı oldukça basit olan bu işleç için hemen bir kaç örnek verelim.
Örnekler için aşağıdaki personel tablosunu kullanacağız.
per_noisimsoyisimyascinsiyetkentulkemaas
1AhmetYılmaz20EAnkaraTürkiye2000
2MehmetEfe22EBoluTürkiye1800
3AyşeCan23KİstanbulTürkiye2500
4FatmaAk35KAnkaraTürkiye2800
5JohnSmith45ENew YorkABD3500
6EllenSmith40KNew YorkABD3000
7HansMüller30EBerlinAlmanya4000
8FrankCesanne35EParisFransa3700
9AbbasDemir26EAdanaTürkiye1500
10HaticeYılmaz26KİstanbulTürkiye3000


Sorgu: Yaşı 20 ile 26 arasında olan personellerin isim, soyisim ve yaş bilgileri.
SELECT isim, soyisim, yas FROM personel WHERE yas BETWEEN 20 AND 26
Sorgunun çıktısı aşağıdaki gibi olacaktır:
isimsoyisimyas
AhmetYılmaz20
MehmetEfe22
AyşeCan23
AbbasDemir26
HaticeYılmaz26


Burada sonuç kümesine dikkat edecek olusanız. Klasik “20 ve 26 da dahil mi”sorusuna da cevap almış olacaksınız. Ancak bu MySQL için böyle. Başka veritabanı sistemlerinde farklı olabilir. Kodları yalnızca MySQL ile deniyorum. Bunu anlamanın en iyi yolu çalıştığınız VT üzerinde denemek.
Sorgu: İsimleri Ahmet ile Fatma arasında olanlar (kulağa ilginç geliyor ama aslında sadece alfabetik sıralama.)
SELECT isim, soyisim, yas FROM personel WHERE isim BETWEEN 'Ahmet' AND 'Fatma'
isimsoyisimyas
AhmetYılmaz20
AyşeCan23
FatmaAk35
EllenSmith40


Dikkat: Burada ‘Ahmet’ ve ‘Fatma’ yerine ‘ahmet’ ve ‘fatma’ yazsaydık, sorgumuz boş küme döndürürdü. ‘A’ ve ‘a’ sembolleri farklı değerler ifade ediyor. Başka bir ifade ile küçük harfler ile büyük harfler farklı iki grup teşkil ediyorlar. Bu arada Türkçe karakterler de (doğrusu yalnızca çığöşü değil İngiliz alfabesinde olmayan tüm karakterler) genelde bu grupların sonunda yer alıyor.
Örneğin ORDER BY ile isme göre sıralama yaptığınızda Ç ile başlayan ismin C ile başlayanlardan sonra değil de Z’den sonra geldiğini görürseniz saşırmayın. Elbette bunu düzeltmenin de yolları var ama ileriki konularda değineceğim inş.
BETWEEN işlecini sayısal (INTEGER) ve metin (VARCHAR) değerlerin yanında tarih (DATE) tipindeki değerler ile de kullanabileceğimizi hatırlatalım.

Hiç yorum yok:

Yorum Gönder