Merhaba arkadaşlar, SQL Komutlarım I ‘ in devamı niteliğindeki bu
makalemde sizlere matematik sorgu komutlarından, sütunları nasıl
gruplandırma yapacağımızdan ve gruplandırılmış sütunlara nasıl koşul
koyacağımızdan bahsetmeye çalışacağım
SQL KOMUTLARIM -II Merhaba arkadaşlar, SQL Komutlarım I ‘ in
devamı niteliğindeki bu makalemde sizlere matematik sorgu
komutlarından, sütunları nasıl gruplandırma yapacağımızdan ve
gruplandırılmış sütunlara nasıl koşul koyacağımızdan bahsetmeye
çalışacağım. Alet çantamızı bir an önce dolduralım ki ilerleyen
makalelerimizde daha kompleks projelere imza atalım.Eee o zaman hadi
başlayalım.
MATEMATİKSEL SORGU KOMUTLARI Max: Sütundaki en yüksek değeri bulmamıza yarar.
Gördüğümüz gibi fiyat sütunundaki en yüksek değeri verdi.
Min: Sütundaki en küçük değeri bulur.
Sum: Sütun toplamını bulur. Sayısal veri içeren bir sütunun toplamını hesaplamak isterseniz komutlarınız şöyle olmalıdır.
Fiyat sütunundaki verilerin toplamı karşımıza geldi. Mesela bir
marketin günlük satışlarının toplamını tek tuşla ekranımıza
getirebiliriz. Olay yukarıdaki kodlardan ibarettir. Evet yazılıma gönül
vermiş dostlarım, matematiksel sorgu komutlarına hız kesmeden devam
ediyoruz.
Avg: Bu sorgu sayısal veri içeren sütunun ortalamasını verir.
Gördüğünüz gibi fiyat sütununun ortalaması karımıza gelmiştir. Bu tür
uygulamalar bir topluluktaki insanların yaş ortalamasını bulmakta,
gelir dağılımı gibi değişik alanlarda kullanılabilinir. Biz burada bir
koşula göre de ortalama aldırabiliriz. Mesela Fiyatı 350 dolardan büyük
olan ürün fiyatlarını aldıralım. Kodlarımız aşağıdaki gibi olacaktır.
Count: Kayıt sayısını bulmamıza yarar. Tablomuzdaki kayıt sayısını istediğimiz koşulları ekleyerek bulabiliriz.
Sorgumuzda yazdığımız “
*“ yerine herhangi bir sütun ismi de yazabilirdik. Ama o sütunda
herhangi bir satıra veri girilmeyip boş geçilirse kayıt sayısı eksik
döner, yani ismini yazdığımız sütunun boş olmayan kayıt sayısını
döndürür. Eğer kullandığımız sütun primary index ise zaten boş
geçilmeyeceğinden
Count(*) ile aynı değeri verecektir.
Group By: Gururlandırma
yapmaya yarayan sorgumuzdur. Mesela sorgumuzda aynı marka ismine sahip
olanlar için verilen faturaların toplamını tek bir kayıtta yazdırmak
istersek Group By ‘ı kullanmamız gerekir. Hemen deneyelim, Yazılım
okuyarak değil yazarak öğrenileceği için sizinde yazmanızı tavsiye
ediyorum.
Evet arkadaşlar mavi renkli satırları dikkatlice inceleyecek olursak 2
tane HP, 2 tane TOSHIBA ürününü aynı satıra alınmış. Buda Group By ın
marifeti J
Having: Gururlandırılmış sütunlara koşul koyar.
Şimdi size bir soru sormak istiyorum. Bir şirkette çalışıyorsunuz ve
müdürünüz sizden sadece 1 kere satılmış markaların listesini istiyor.
Ne yapardınız?
Bence düşünmeyi bırakın ve bir anca Having sorgusunu faaliyete geçirin yoksa kovulacaksınız
İşlem tamamdır arkadaşlar.. Ne yaptığımızı adım adım inceleyelim
isterseniz. İlk önce istediğimiz sütun başlıklarını seçtik. Daha sonra
Urun Markasına göre grupladık ve grupladığımız sütunun altındaki
kayıtlara Having metodu ile koşul koyduk, sadece bir kere girilen
kayıtları getirmesini emrettik ve geldi.Ne güzel dimi, Ben Sql i
gerçekten çok seviyorum arkadaşlar, devamlı emrediyorsunuz ve anında
emirleriniz yapılıyor, ama doğru emretmesini bilek gerekir.
Önemli Bilgi: Having yapısı Group By dan sonra kullanılması gerekir.
Eğer sorgunuzda Group By yoksa having yapısını kullanamazsınız. Çünkü
having yapısı gruplandırılmış sütunlara koşul koyar.
Where:Sorguya koşul koyar. Yukarıdaki komutlarla istediğimiz gibi sorgu
oluşturabiliriz ama where ile bir kriter koyarak listeleme yapabiliriz.
Mesela ürün markası toshiba olanları listeleyelim.
Şimdide fiyatı 1000 dolardan fazla olan ürünleri getirelim.
Sonuç olarak karşımıza 1000 dolardan pahalı ürünler geldi.
And: Aynı
anda birden fazla koşulu sağlamak için kullanılır. Mesela Hem Urun
marka Toshiba olacak, hem Laptop olacak hemde fiyatı 1500 dolardan
fazla olacak. Bu sorguyu yazmayı deneyelim.
Where komutundan sonra her şartımızın arasına and komutumuzu
yerleştiriyoruz, bu sayede istediğimiz kadar şartı aynı anda
sağlayabiliriz.
Or: Şartlardan sadece birinin geçerli olduğu durumlarda çalışmayı sağlayan komuttur. Mesela LG veya HP olan ürünleri listeleyelim.
Not: Or ile and ‘i sakın krıştırmayalım.
And ‘de bütün koşulları sağlaması gerekir.Ama
or da sadece bir koşulun varlığı yeterlidir.
in: Bu
komut sayesinde de birden fazla koşul verebiliriz ama dikkat etmemiz
gereken en önemli husus aynı sütuna ait değerleri girmemiz
gerekmektedir.
Bir örnek üzerinde açıklayalım. Mesela ürün markası sadece toshiba ve hp olan ürünleri listeleyelim.
Urün marka sütununa baktığımızda sadece istediğimiz ürünler karşımıza
geldi. Parantez içine yazdığımız kelimeler aynı sütun içersinde yer
alması zorunludur yoksa kodumuz yanlış olacaktır.
Not in: Bu sorgumuz ise in komutunun tam tersidir. Yani yazdığımız koşulun sağlanmadığı durumdur.
Bir örnek üzerinde daha iyi anlaşılacağı kanaatindeyim. Bu seferde Urün markası TOSHIBA ve HP olmayan ürünleri getirsin.
Ürün marka sütununa baktığımızda istemediğimiz ürünler gelmedi.
Between: Belirli
bir aralıktaki verileri sorgulamak için kullanırız. Mesela Fiyatı 100
dolar ile 500 dolar arasındaki ürünleri sıralayalım.
Gördüğümüz gibi kullanımı çok basit, aşağıdaki ifade de bu sonucu bize verir.
select*from Satis where Fiyat>=100 and Fiyat<=500
Like: Sütun içinde arama yapar. Mesela sadece baş harfini verip ona uyan sütunları ekrana çağırabiliriz.
Kullanım şekli;
Mesela
T harfiyle başlayan kayıtları bulmak için
‘T%’ , T harfiyle biten kayıtları bulmak için
‘%T’ ifadesini kullanırız. Eğer içinde T harfi olan kayıtları istersek
‘%T%’ ifadesini kullanırız.
Hadi o zaman birkaç örnekle deneyelim sevgili dostlar.
Bakın T harfi ile başlayan markalar geldi.
İçinde T harfi olan markaları görmek istersek şöyle yazarız.
Eveeett sevgili arkadaşlar geldik bir makalemizin daha sonuna umarım
sizlere azda olsa yardımcı olmuşumdur. Size tavsiyem bu ve buna benzer
örnekleri bolca
yazarak yapmak. İşimiz yazmak değimli zaten
SQL Komutlarım –III te görüşmek üzere.