MySQL de Sorgu Komutları -3-

MySQL de Sorgu Komutları -3-

Hepinize merhaba dostlarım :). Bu yazımda daha önceki yazılarım olan MySQL de Sorgu Komutları -1- ve MySQL de Sorgu Komutları -2- nin devamı niteliğinde olacaktır. Bahsettiğim yazılarımı okumayan dostlarım için hemen link bırakıyorum

MySQL de Sorgu Komutları -1- : https://blog.mfsoftware.net/yazi/mysql-de-sorgu-komutlari-1
MySQL de Sorgu Komutları -2- : https://blog.mfsoftware.net/yazi/mysql-de-sorgu-komutlari-2

linklerini bıraktım dostlarım :). Belirttiğim linklerden ulaşabilirsiniz. O halde sözü daha fazla uzatmadan ve konu MySQL komutlarının devamı olduğu için komutları inceleyeme yavaştan başlayalım derim. Sizin bu heyecanınızı hissediyorum ve konuya geçiyorum :)

1-) SUM()

Dostlarım SUM komutu bizim tablomuzda belirttiğimiz alanda toplama işlemi yapmamıza yarar. Örnek vermek gerekirse en basitinden 3 verimiz var diyelim ve bunlar da günlük giderlerimiz olsun. Bunları tabloda tutup ekranımıza bastırdık diyelim tamam hesaplarız sıkıntı olmaz. Ama işlerimizi büyüttük giderlerimiz gelirlerimiz fazlalaştı giderlerimiz fazlalaştı ve verileri artık 100 üzerinde diyelim bunları uzun uzun hesap makinasıyla mı toplayacağız ? Hayır dostlarım bir programcı asla bunu yapmaz :). Kullanır SUM komutunu toplam gelirini de hesaplar toplam giderini de hesaplar :)

Şimdi dostlarım muhasebe isminde örnek bir tablo oluşturalım dostlarım ve bunu diğer konularda da kullanalım

idtip (gider 0, gelir 1)tutaryil
1120002017
2114002017
307002017
418502018
5021002018
6040002018

şeklinde tablomuz olsun dostlarım :). Bizim istediğimiz işlemin ilki şu olsun "2017 yılına ait gelirlerin toplamı". Hemen bunu koda dökelim ve ekran çıktısını alalım dostlarım.

SELECT SUM(tutar) FROM muhasebe WHERE yil=2017 and tip=1

şeklinde kodumuzu yazdık dostlarım. Dikkat ederseniz SUM() yazdıktan sonra hemen toplamıyor. Bizden parametre istiyoru yani "Nereyi Toplayacağım ?" diyor. Tutar alanının toplanmasını istiyoruz dedik ama yıl 2017 olanları ve tip 1 olanları topla dedik (tip=1 gelir yani). Bu işlemi de yaptıktan sonra dostlarım aşağıdaki gibi bir sonuç bizi bekliyor olacaktır

SUM(*)
3400

bu şekilde bir çıktı karşılayacaktır bizleri dostlarım :). Belirttiğimiz koşullara göre o alanı topladı ve ekranımıza bastırdı :). Şimdi gelelim diğer sorgu komutumuza

2-) AVG()

Dostlarım gelelim bir diğer sql sorgu komutumuz olan AVG() ye :). AVG komutu ise dostlarım SUM komutu gibi kullanılır yani çok abartılacak bir kullanımı yok lakin aralarında bir fark var :). Bu fark da şudur:

Biz SUM ile o alanı toplatmıştık ya AVG ise o alanın ortalamasını alır :). Kullanım alanından örnek vermek gerekirse dostlarım bir muhasebe programı düşünün yıllık ortalama gelirini veya yıllık ortalama giderini hesaplatması durumları çok çok önemlidir. Bu sebepten dolayı programı yazan programcılar sql tarafında AVG komutunu yazıp kullanıcıların işlemleri hızlı bir şekilde yapmalarını, hesaplamalarda rahatlık yaşamalarını sağlarlar :)

Gelin dostlarım sözü daha fazla uzatmadan bir örnek yapalım. Yukarıda belirttiğimiz tablodan "2018 yılının gider ortalaması" örneğini yapalım :). Kullanımının basit olduğunu şu an anlayacaksınız dostlarım aynı SUM komutunun kullanımı gibi :)

SELECT AVG(tutar) FROM muhasebe WHERE yil=2018 and tip=0

şeklinde kodumuzu yazıyoruz. Burada diyoruzu ki "AVG komutu senin görevin muhasebe tablosundaki tutar alanının ortalamasını almak. Lakin belirli bir şart var. Yıl 2018 olanları ve tip 0 yani giderlerin ortalamasını alacaksın". Sql sorgumuz tabii dostum sen iste yeter diyor ve saniyeler içerisinde ekranımıza aşağıdaki gibi sonuç çıkartıyor

AVG(tutar)
3050.0000

şeklinde sonuç çıkartıyor dostlarım :). Sağlamasını da yaparsak doğru bir sonuç verdiğini görüyoruz dostlarım :). Zor bir yanı yok dostlarım çok basit. Karmaşık geliyorsa biraz sizlerden isteğim bolca pratik yapmanızdır :). Gelelim bir diğer komutumuza

3-) GROUP BY

Geldik sql komutlarından birine daha ve analiz yaptırma işlemlerinde vazgeçilmez olan komutumuza :). Dostlarım isminden de biraz anlamışsınızdır gruplama diye ve doğru bildiniz gruplama işlemi yapmamızda yarayan sql komutudur :). Zor bir yanı yok dostlarım :). Örnek vermek gerekirse yine muhasebe uygulamalarından gidelim. Bizim her yıl gelir gider tablomuz olsun. Yukarıdaki gibi yıllık gelir ortalaması veya yıllık gider ortalaması diye her yıl için sql kodu yazmamız ne kadar saçma olurdu değil mi :). İşte dostlarım bu konuda sql geliştiricileri bunu düşünmüş ve bizim imdadımıza koşan bir komut yani GROUP BY komutunu hazırlamışlar. Kendilerine buradan teşekkür ediyoruz :). Sözü daha fazla uzatmadan bizim tablomuzda örnek bir kullanım yapalım dostlarım :)
Örneğimiz şu olsun dostlarım "2017 ve 2018 yıllarının gelir analizi". Bunu koda dökmek için sabırsızlandığınızı biliyorum dostlarım :). Hadi gelin hızlıca yapalım

SELECT yil,AVG(tutar) FROM muhasebe WHERE tip=1 GROUP BY yil

şeklinde sorgumuzu hazırladık dostlarım :). Burada sorgu sql e gidiyor ve diyor ki "Muhasebe tablosunda yılları ve tutarlar sütununun ortalamasını tip=1(gelir) olanlara göre çekeceksin. Lakin yıllara göre tutar ortalaması olacak kullanıcı analiz istiyor". Sql komutu da tabii ki diyor ve saniyeler içerisinde ekranımıza aşağıdaki gibi çıktı veriyor

yilAVG(tutar)
20171700
2018850

şeklinde ekrana bastırılıyor dostlarım :). Gördüğünüz gibi zor bir şey kullanımları da basit :).


Evet dostlarım bu yazımda da sql komutlarından elimden geldiğince sade bir anlatımla bahsetmeye çalıştım :). Umarım faydalı olmuşumdur. Zor veya karmaşık gelmiş ise her yazımda belirttiğim gibi "İstikrarlı ve azimli olmak, bol pratik yapmak". Bu dediklerimi sürekli uygularsanız başarı sizin için kaçınılmaz olacaktır dostlarım :). 

Hayallerinizi gerçekleştirmeniz ve güzel yerlere gelmeniz dileklerimle... İyi çalışmalar dilerim :)

Muhammed Fatih BAĞCIVAN
Yazar Hakkında

Kendi Halinde Bir Backend Developer

Önceki YazıPHP de Diziler
Sonraki YazıGeliştirici Özelliğinizi Artıracak 5 Yol
Yorumlar (0)
Bu Yazıya Ait Hiçbir Yorum Bulunamadı (veya admin onaylamadı). İlk Yorum Yapan Sen Ol
Yorum Yapabilirsiniz