Select ifadesi, herhangi bir veritabanı içerisinde ki verileri sorgulamak için kullanılan en basit aynı zamanda en kapsamlı komuttur. Bu yazımda basitten karmaşığa doğru select komutu kullanımını örneklerle anlatmaya çalışacağım. Konunun daha iyi anlaşılması için aşağıdaki örnek musteriler tablosunu kullanarak sorgulama işlemlerini gerçekleştireceğiz.
Basit Select İfadeleri İle Sorgulama
En basit olarak tablodaki tüm kayıtları seçmek için;
1
2
3
|
Select * from musteriler
Select musteriID, isim, soyisim, dogumtarihi, il, ilce from musteriler
|
Yukarıdaki sorgular çalıştırıldığında iki sorgu sonucunda da musteriler tablosundaki tüm kayıtlar listelenecektir. Birinci ifadede tüm kolon isimlerini teker teker belirtmek yerine * karakteri ile tüm kolonların seçileceği bildirilmiştir.
Not: (*) karakteri kolay bir kullanım sunmasına rağmen, tüm kolon isimlerini teker teker yazmanızı öneririm.
Müşterilerin sadece musteriID, isim, soyisim ve il bilgilerine ulaşmak istersek;
1
|
Select musteriID, isim, soyisim, il from musteriler
|
Sorgu sonuçlarını incelediğinizde veri kaynağındaki tablolar ile sorgulama sonucu listelenen verilerin kolon isimlerinin aynı olduğunu görürsünüz. Eğer listedeki kolon isimlerini değiştirmek isterseniz, Alias kullanmak zorundasınız. Yukarıdaki sorguyu aşağıdaki gibi değiştirelim.
1
|
Select musteriID as MüşteriID, isim as İsim, soyisim as Soyad, il as [Bulunduğu İl] from musteriler
|
Not: Alias isimleri belirlenirken Türkçe karakter kullanılabilir fakat kelimeler arasında boşluk bırakılmaz. İlla ki bırakacam derseniz aralarında boşluk bulunan kelimeleri [] arasına alabilirsiniz.
Sorgu Sonuçlarının Where Koşulu İle Sınırlandırılması
Yukarıdaki sorgulama ile tablodaki tüm kayıtlara veya istediğimiz kolonlardaki kayıtlara erişebiliyoruz. Peki tüm kayıtlara değil de sadece istediğimiz, bizim belirlediğimiz koşula uyan kayıtların listelenmesini istersek? Böyle bir durumda where operatörünü kullanmak zorundayız.
Sadece Antalya’da yaşayan müşterilerin tüm bilgilerini listeleyelim;
1
|
Select musteriID, isim, soyisim, dogumtarihi, il, ilce from musteriler where il=’Antalya’
|
Bunun dışında birden fazla koşul ifadesini birliktede kullanabiliriz. Koşul ifadeleri mutlaka and (ve), or (veya), not (değil) operatörleri ile birbirinden ayrılmalıdır.
Soyismi Demir olan ve Antalya’da yaşayan kişileri seçmek istersek;
1
|
Select * from musteriler where soyisim=’Demir’ and il=’Antalya’
|
Not: Where ifadesinde kullanılan and, or ve not operatörleri arasındaki öncelik işlemi şu şekildedir. Öncelikle parantez içerisindeki ifade, sonra sırasıyla not, and ve or operatörleri işlem görür.
Ayrıca sorgulama işlemlerinde karşılaştırma ifadeleri kullanılabilir. Örneğin büyüktür(>), küçüktür(<), eşittir(=), eşitdeğildir(!=) gibi programlama dillerinde kullanılan karşılaştırma ifadeleri sorgularda kullanılabilir.
Doğum tarihi 01-01-1985 tarihinden büyük olan müşterileri listeleyelim;
1
|
Select * from musteriler where dogumtarihi>=’1985–01–01’
|
Karakter Katarlarını Like Operatörü ile Sınırlamak
Yukarıdaki örneklerde = operatörünün karakter katarlarını da karşılaştırdığını gördük. Fakat sql içerisinde sadece karakter katarlarını karşılaştırmak için özelleştirilmiş Like operatörü bulunmaktadır. Ayrıca Like operatörü bazı özel parametrelerle çok işlevsel sorgulamalar yapmaya olanak verir.
Soyadı D harfi ile başlayan müşterileri listeleyelim;
1
|
Select * from musteriler where soyisim like ‘D%’
|
Not: % işareti bir veya daha fazla karakteri temsil etmek için kullanılmıştır. Buna benzer olarak _ işareti sadece tek bir karakteri temsil eder.
Sonu en ile biten ve adı 3 harften oluşan müşterileri listeleyelim;
1
|
Select * from musteriler where isim like ‘_en’
|
Sorgu Sonuçlarının Order By ile Sıralanması
Select ifadeleriyle birlikte en fazla kullanılan ifadelerden biride Order By sıralama operatörüdür. Sorgu sonuçları belirlenen kolon isimlerine göre büyükten küçüğe yada küçükten büyüğe doğru sıralanabilmektedir.
Müşterilerimizi doğum tarihlerine göre sıralayalım;
1
|
Select * from musteriler order by dogumtarihi asc
|
Örneğimizde müşteriler doğum tarihlerine göre küçükten büyüğe doğru sıralandı. Tam tersi olarak büyükten küçüğe sıralama yapmak istersek asc yerine desc operatörünü kullanmamız gerekir.
Not: Order By operatörü Select ifadesinde her zaman en son olarak yazılır.
Sql Select sorgusunu en çok kullanılan ifadelerle birlikte anlatmaya çalıştım. Yukarıda açıklananlardan farklı olarak select deyimi içerisinde onlarca farklı operatör yer almaktadır. Bazıları tekil tablolarla kullanılırken, bazıları da sadece ilişkili tablolar üzerinde sorgulama yapmada kullanılırlar. Hepsini ayrı ayrı detaylarıyla açıklamak konunun çok fazla uzamasına neden olacağı için değinilmemiştir.