SQL ‘de kullanacağımız diğer bir komut ise between ‘dir. Bu komutu Türkçe karşılığına çevirip bizler bu Türkçe anlamına bakarak akıl yürütmeye çalışırsak dilimizde ki karşılığı arasında anlamına gelen bu kelimede iki değer arasında ki sonuçları sorgulatma işlemini gerçekleştirebileceğimizi çıkarabiliriz aslında.
Tabi bu sorgulatma işlemini gerçekleştireceğimiz değerler metin, tarih yada sayısal bir ifadeler olabilir. Yani aslına bakarsanız bizler belirli bir tarih arasında ki sonuçları listeleme işlemini gerçekleştirebileceğimiz gibi belirli metin aralıklarını listeleyebilir yada iki sayı arasında ki sonuçları karşımıza getirmesini isteyebiliriz. İşte bu nedenle aslında tam anlamıyla bir sorgulama yapabilmek adına SQL between komutu bizim için önemli bir komut haline gelmektedir.
SQL Between Kullanımı
Artık SQL ‘de between komutunun ne işe yaradığını ve ne anlama geldiğini aslında kendimiz birazda olarak farkına varmış isek bile önemli olan bunun nasıl çalıştığını bilmek ve nasıl kullanabileceğimizden geçer.
select * from ilktablo where id between 1 and 5
Şimdi yukarıda yer alan sorgu cümlesine baktığımızda between ‘in yanında yer alan “and” kelimesini görmeniz kafanızı karıştırmasın. Bu zaten bildiğimiz gibi Türkçe ‘ye çevirdiğimizde ve anlamını taşımaktadır. Yani aslına bakarsanız yukarıda ki sorgu cümlemizde ilktablo tablosundan id si 1 ve 5 arasında olan sonuçları listelemesini istemiş bulunuyoruz.
Yani aslına bakarsanız dikkat etmemiz gereken nokta söz dizimini bildikten sonrasında hepsinin teker teker işleme konulduğudur.
select * from tabloismi where kolonadi between deger1 and deger2
Yukarıda yer alan söz diziminde ise aslında italik ile yazılan kısımlar video ‘da izlemiş olduğunuz sorgulama cümlesi yerine sizin SQL ‘de oluşturmuş olduğunuz veritabanının kolonuna göre farklılık gösterecektir fakat önemli olan söz dizimini bilmek ve marifet aslında kendiniz tablo isminize ve kolon adınıza göre sorgulatma işlemini başarabilmektedir.
select * from ilktablo where soyisim between 'e' and 'z'
Yukarıda yer alan sorgu cümlesinde ise bizler artık metinsel bir değer girdiğimiz için dikkat etmeniz gereken nokta tek tırnak içinde kullandığımızdır. Onun haricinde ise bizler artık bu sorgulama cümlesi içinde soyisim kolonundan e ve z arasında olan soyisimleri bizim karşımıza getirmesini SQL server ‘ımızdan istemiş bulunuyoruz.
Eğer bizler örneğin bir üstte yer alan komutta “e” ve “z” baş harflerine sahip olan sonuçları getirilmesini istemiştik. Ama biz bu sonuçların getirilmemesini istiyor isek yapmamız gereken şeyde aslında çok basittir. İşte buyurun :
select * from ilktablo where soyisim not between 'e' and 'z'
Yukarıda yer komut cümlesinde bir farklılık sezdiniz mi ? Between komutunun önüne “not” kelimesi gelerek bu sorgunun anlamını olumsuz yaparak bana e ve z harflerini içermeyenleri getir demektir. Bu sayede SQL not between kullanımının da farkına vararak doğru sonuçlara ulaşabilmek adında bir adım daha öndesiniz demektir.
select * from ilktablo where (id between 1 and 5) and not id in (1,2,3)
Şimdi yukarıda yer alan örnekte hem bugün öğrendiklerimizi hemde geçen dersimizde öğrenmiş olduğumuz SQL in kullanımı sayesinde biraz pekiştirmeye çalışalım. Öncelikle zaten ilk başta olan kısımda bizler ne yaptık 1 ve 5 arasında id kolonunda yer alan sonuçları bizlere getirmesini istedik. Daha sonrasında and diyerek demişiz ki id kolonundan id si 1,2,3 olanları not yani hayır bize getirme diyerek 1 ve 5 arasında gelecek sonuçların önüne bir engel koyarak sadece bu komutu çalıştırdığımızda 4 ve 5 id ‘sine sahip olan sonuçları karşımıza getirmesini istemiş bulunuyoruz.
Sırada ise fark ettiğiniz üzere yukarıda sayısal ve metinsel bir değer sorgulama işlemini gerçekleştirmemize rağmen hiç tarihsel bir değer gerçekleştirmedik. Şimdi ise between komutunda iki tarih sorgulama arasını nasıl yapacağımıza gelin bir göz atalım.
select * from ilktablo wher dtarih between #01/01/2001# and #01/01/2011#
Yukarıda yer alan yöntemde sıralama bildiğimiz gibi gün ay yıl olarak gider iken bir başka tarih sorgulama biçimimiz daha bulunmaktadır.
select * from ilktablo wher dtarih between '1999-08-08' and '2009-08-08'
Yukarı da yer alan kısımda ise bu sefer sıralamamız yıl ay ve gün olarak ele alınmaktadır. Dikkat etmemiz gereken nokta ise üst kısımda ki örnekte ki şekilde sorgulama işlemi gerçekleştirecek isek # işareti ile alt kısımda ki şekilde gerçekleştireceksek tek tırnak içinde tarihi yazmalıyız.