SQL Select Where Sorgusu
SQL meraklılarına yeniden selam :)
Önceki birkaç makalemizde insert,update ve delete sorgularını görmüş birazda select sorgusunun çalışma mantığını öğrenmiştik.
Bu makalemizde ise iyi bir veritabanı sorgulaması için select sorgusunun derinliklerine inmeye başlayacağız,ancak şu an ki örnek veritabanımız olan BakkalDB, select sorgularımız için yeterince veri içermiyor.Dolayısıyla sizlere aynı veritabanının daha fazla data kaydını içeren script dosyasını vereceğim,tabi bu SQL script dosyasını kullanabilmek için yine SQL Management Studio'yu açmalı ve eğer hali hazırda BakkalDB veritabanına sağ tıklayıp "delete" seçeneği ile kaldırıp yeniden aynı isimle oluşturmalısınız.
Bu adımları yaptıysanız veya BakkalDB veritabanı daha önce bilgisayarınız yoksa buradaki SQL script dosyasını indirip basit bir metin editörüyle (notepad,word gibi) açıp içeriğindeki scriptleri SQL Management Studio'daki daha önce gördüğümüz sorgu penceresiyle çalıştırıp örnek veritabanımızı hazır hale getirebilirsiniz.
Eğer herhangi bir hatayla karşılaşır ya da yardım gerekirse iletişim kanallarıyla benden yardım isteyebilirsiniz :)
Şu anda BakkalDB veritabanımızın çalıştığını varsayarsak artık select sorgusuna başlayabiliriz.
Select sorgusu, daha önce de öğrendiğimiz gibi herhangi bir SQL veritabanındaki verileri görüntülememize olanak sağlayan 4 temel DDL sorgudan birisidir.Tıpkı update ve delete sorgularında olduğu gibi sorgu sonuna "where" deyimini kullanarak görüntülenmesini istediğimiz kayıtları filtreleyebiliriz.
Where koşulunun select sorgusundaki temel yazılış biçimi
select kolon1,kolon2,.. from Tablo where KolonX=deger
şeklindedir.
Veri filtreleme konusunda en önemli nokta "deger" isimli filtre konusudur ve istediğimiz değeri bu şekilde doğrudan belirtebileceğimiz gibi mantıksal operatörleri (<,>,!=,>=,<= gibi) kullanarak daha kapsamlı ve çift mantıksal operatörleri (and,or) kullanarak daha da büyük kıstaslı filtreleme kuralları oluşturabiliriz.
Örneğin veritabanımızdaki ürünleri select sorgusuyla çağıralım:
Sorgumuzu bu şekilde yazıp çalıştırdıktan sonra sağ alt köşeye baktığımızda "126 rows - 126 satır" yazdığını görüyoruz.Yani hiçbir filtreleme yapmadan elimizde 126 kaydın olduğunu görüyoruz.
Düşünün çok büyük bir veritabanıyla çalışıyorsunuz, toplam kayıt sayısı yüz binleri geçiyor ancak sizden istenen tüm kayıtlar değil sadece belli kriterlere göre olanlar olsaydı tek tek ayıklayacak mıydınız? Tabi ki hayır!
İşte SQL where koşulu böyle ihtiyaçlardan dolayı doğmuş ve hem yazılımcılara hem veritabanı uzmanlarına hem de istatistiki alanlarda çalışan birçok insana büyük olanaklar sağlamıştır.
Peki biz de şöyle bir örnek uygulama yapalım, madem elimizde 126 çeşit ürün varsa bir bunların yalnızca fiyatının 10 TL üstündekilerini istesek güzel olmaz mıydı olurdu :)
O halde klasik select sorgumuzun sonuna where yazıp koşul olarak fiyat kolonu büyüktür (>) 10 yazıyor ve sonuçlara bakıyoruz:
Görüldüğü gibi fiyatı 10 TL'den büyük olan 6 ürünümüz varmış.
Şimdide küçüktür (<) operatörünü kullanarak elimizde fiyatı 5 TL'den küçük olan ürünleri listeleyelim:
Sağ alt köşeye bakarsak toplam 98 ürünümüz 5 TL'den daha küçükmüş :)
Şimdi çift operatörler dediğim mantıksal operatörleri görelim,bunlardan en sık kullanılanlar ise:
ve (and), veya (or) , değil (!=) , eşittir (=)
operatörleridir.
Bu operatörleri tek başlarına kullanamayız mutlaka yukarıdaki gibi matematiksel operatörlerle birlikte kullanmak zorundayız.
Bir örnek daha yapalım: fiyatı 5 TL'den çok olan Signal markasına ait ürünleri listeleyelim.
Bizden istenenlere bakarsak iki koşul var,birincisi fiyat>5 diğeri ise markanın Signal olması.Signal marka ID'si ise 8 dir.
O halde where koşulumuz Fiyat>5 and MarkaID=8 olacaktır:
Demek ki istenilen sayıda kriterle kolaylıkla veri filtreleme yapabiliyoruz :)
Son olarak şöyle bir örnek yapalım: fiyatı 1 TL'den küçük olan ürünlerin adını listeleyelim.
Dikkat ederseniz burada bizden bu defa tüm verileri değil sadece ürünlerin adlarını yani sadece UrunAdi kolonundaki veriler isteniyor.Biz de bu defa select sorgusunda yıldız (*) işareti yerine UrunAdi kolonunu yazacağımızı bildiğimiz için hay hay buyurun diyoruz :)
Böylece where koşulu ile veri filtreleme nasıl yapılır öğrenmiş olduk :)
Makalenin en başında da bahsettiğim gibi select sorgusu diğer sorgulara göre daha sık kullanılır ve çok önemli bir yere
sahiptir,dolayısıyla veritabanı biliyorum demek için select sorgusun en uç noktaya kadar iyi bilmek şart!
Bu makalemizde select sorgusuna küçük bir başlangıç yaptık bir sonraki makalemizde ise select sorgusunda yep yeni konularla yeni örneklere devam edeceğiz,o zamana dek kendinize iyi bakın hoşçakalın :)
Önceki birkaç makalemizde insert,update ve delete sorgularını görmüş birazda select sorgusunun çalışma mantığını öğrenmiştik.
Bu makalemizde ise iyi bir veritabanı sorgulaması için select sorgusunun derinliklerine inmeye başlayacağız,ancak şu an ki örnek veritabanımız olan BakkalDB, select sorgularımız için yeterince veri içermiyor.Dolayısıyla sizlere aynı veritabanının daha fazla data kaydını içeren script dosyasını vereceğim,tabi bu SQL script dosyasını kullanabilmek için yine SQL Management Studio'yu açmalı ve eğer hali hazırda BakkalDB veritabanına sağ tıklayıp "delete" seçeneği ile kaldırıp yeniden aynı isimle oluşturmalısınız.
Bu adımları yaptıysanız veya BakkalDB veritabanı daha önce bilgisayarınız yoksa buradaki SQL script dosyasını indirip basit bir metin editörüyle (notepad,word gibi) açıp içeriğindeki scriptleri SQL Management Studio'daki daha önce gördüğümüz sorgu penceresiyle çalıştırıp örnek veritabanımızı hazır hale getirebilirsiniz.
Eğer herhangi bir hatayla karşılaşır ya da yardım gerekirse iletişim kanallarıyla benden yardım isteyebilirsiniz :)
Şu anda BakkalDB veritabanımızın çalıştığını varsayarsak artık select sorgusuna başlayabiliriz.
Select sorgusu, daha önce de öğrendiğimiz gibi herhangi bir SQL veritabanındaki verileri görüntülememize olanak sağlayan 4 temel DDL sorgudan birisidir.Tıpkı update ve delete sorgularında olduğu gibi sorgu sonuna "where" deyimini kullanarak görüntülenmesini istediğimiz kayıtları filtreleyebiliriz.
Where koşulunun select sorgusundaki temel yazılış biçimi
select kolon1,kolon2,.. from Tablo where KolonX=deger
şeklindedir.
Veri filtreleme konusunda en önemli nokta "deger" isimli filtre konusudur ve istediğimiz değeri bu şekilde doğrudan belirtebileceğimiz gibi mantıksal operatörleri (<,>,!=,>=,<= gibi) kullanarak daha kapsamlı ve çift mantıksal operatörleri (and,or) kullanarak daha da büyük kıstaslı filtreleme kuralları oluşturabiliriz.
Örneğin veritabanımızdaki ürünleri select sorgusuyla çağıralım:
Sorgumuzu bu şekilde yazıp çalıştırdıktan sonra sağ alt köşeye baktığımızda "126 rows - 126 satır" yazdığını görüyoruz.Yani hiçbir filtreleme yapmadan elimizde 126 kaydın olduğunu görüyoruz.
Düşünün çok büyük bir veritabanıyla çalışıyorsunuz, toplam kayıt sayısı yüz binleri geçiyor ancak sizden istenen tüm kayıtlar değil sadece belli kriterlere göre olanlar olsaydı tek tek ayıklayacak mıydınız? Tabi ki hayır!
İşte SQL where koşulu böyle ihtiyaçlardan dolayı doğmuş ve hem yazılımcılara hem veritabanı uzmanlarına hem de istatistiki alanlarda çalışan birçok insana büyük olanaklar sağlamıştır.
Peki biz de şöyle bir örnek uygulama yapalım, madem elimizde 126 çeşit ürün varsa bir bunların yalnızca fiyatının 10 TL üstündekilerini istesek güzel olmaz mıydı olurdu :)
O halde klasik select sorgumuzun sonuna where yazıp koşul olarak fiyat kolonu büyüktür (>) 10 yazıyor ve sonuçlara bakıyoruz:
Görüldüğü gibi fiyatı 10 TL'den büyük olan 6 ürünümüz varmış.
Şimdide küçüktür (<) operatörünü kullanarak elimizde fiyatı 5 TL'den küçük olan ürünleri listeleyelim:
Sağ alt köşeye bakarsak toplam 98 ürünümüz 5 TL'den daha küçükmüş :)
Şimdi çift operatörler dediğim mantıksal operatörleri görelim,bunlardan en sık kullanılanlar ise:
ve (and), veya (or) , değil (!=) , eşittir (=)
operatörleridir.
Bu operatörleri tek başlarına kullanamayız mutlaka yukarıdaki gibi matematiksel operatörlerle birlikte kullanmak zorundayız.
Bir örnek daha yapalım: fiyatı 5 TL'den çok olan Signal markasına ait ürünleri listeleyelim.
Bizden istenenlere bakarsak iki koşul var,birincisi fiyat>5 diğeri ise markanın Signal olması.Signal marka ID'si ise 8 dir.
O halde where koşulumuz Fiyat>5 and MarkaID=8 olacaktır:
Demek ki istenilen sayıda kriterle kolaylıkla veri filtreleme yapabiliyoruz :)
Son olarak şöyle bir örnek yapalım: fiyatı 1 TL'den küçük olan ürünlerin adını listeleyelim.
Dikkat ederseniz burada bizden bu defa tüm verileri değil sadece ürünlerin adlarını yani sadece UrunAdi kolonundaki veriler isteniyor.Biz de bu defa select sorgusunda yıldız (*) işareti yerine UrunAdi kolonunu yazacağımızı bildiğimiz için hay hay buyurun diyoruz :)
Böylece where koşulu ile veri filtreleme nasıl yapılır öğrenmiş olduk :)
Makalenin en başında da bahsettiğim gibi select sorgusu diğer sorgulara göre daha sık kullanılır ve çok önemli bir yere
sahiptir,dolayısıyla veritabanı biliyorum demek için select sorgusun en uç noktaya kadar iyi bilmek şart!
Bu makalemizde select sorgusuna küçük bir başlangıç yaptık bir sonraki makalemizde ise select sorgusunda yep yeni konularla yeni örneklere devam edeceğiz,o zamana dek kendinize iyi bakın hoşçakalın :)