MySQL veritabanında verileri belirli bir kriter doğrultusunda gruplamak ve sıralamak için GROUP BY ve ORDER BY ifadeleri kullanılır GROUP BY ifadesi, belirtilen sütun adlarına göre verileri gruplar ve her gruptaki veriler için toplama, ortalama vb işlemler yapılabilir Birden fazla sütuna göre gruplama yapılabildiği gibi, sıralama işlemleri de yapılabilir ORDER BY ifadesi, belirtilen sütun adı ve sıralama türüne göre verileri sıralar ASC yükselen veya DESC azalan sıralama türleri kullanılabilir Birden fazla sütuna göre sıralama yapılabilir ve sıralama işlemleri özellikle tarih veya alfabetik sıralama gibi durumlarda kullanışlıdır Çoklu sıralama işlemleri de yapılabilir ve öğrencilerin notlarına göre sınıflarına göre sıralama örneği verilebilir Ayrıca, limit belirleme, toplam veya ortalama işlemleri ve TOP N sonu

MySQL veritabanında gruplama ve sıralama işlemleri oldukça önemli ve sık kullanılan işlemlerdir. Bu işlemler sayesinde büyük verileri daha anlamlı hale getirebilir ve istenen sonuçları elde edebilirsiniz.
Gruplama işlemleri sayesinde verileri belirlediğiniz kriterlere göre gruplandırabilirsiniz. GROUP BY ifadesi kullanılarak gruplama işlemi gerçekleştirilebilir. Sıralama işlemleri ise belirli bir kriter doğrultusunda verileri sıralamak için kullanılır. ORDER BY ifadesi ile sıralama işlemi yapabilirsiniz.
Bu makalede öncelikle gruplama ve sıralama işlemlerinin nasıl yapılacağı açıklanacaktır. Ayrıca çoklu sıralama ve tarih ya da alfabetik sıralama gibi detayları da ele alacağız. Daha sonra, limit belirleme, toplam ve ortalama işlemleri ve TOP N sonuçları alma işlemleri hakkında bilgi vereceğiz. Makalenin son kısmında ise, bu işlemleri içeren uygulamalı örnekler paylaşacağız.
Gruplama İşlemleri
MySQL veritabanında, bazen verileri gruplayarak daha anlamlı raporlar almak gerekebilir. Bu işlem için GROUP BY ifadesi kullanılır. GROUP BY ifadesiyle belirtilen sütun adlarına göre veriler bir grupta birleştirilir ve bu gruplar için toplam, ortalama veya diğer işlemler yapılabilir.
Örneğin, bir müşteri veritabanındaki satın alımların toplam fiyatını hesaplamak istediğimizi varsayalım. Bu durumda, müşteri numaralarına göre gruplandırabilir ve GROUP BY ifadesini kullanarak toplam fiyatları hesaplayabiliriz. Bunun için şu sorgu kullanılabilir:
Müşteri No | Toplam Fiyat |
---|---|
101 | 500.00 |
102 | 1200.00 |
103 | 350.00 |
Bu sorgu, müşteri numaralarına göre verileri gruplar ve her gruptaki toplam fiyatı hesaplar. Bu sayede, her müşterinin ne kadar harcadığını görebiliriz.
GROUP BY ifadesi aynı zamanda birden fazla sütuna göre de gruplama yapmamızı sağlar. Örneğin, müşterilerin yaş ve bölgeye göre gruplandırılması için şu sorguyu kullanabiliriz:
Yaş | Bölge | Toplam Fiyat |
---|---|---|
25 | İstanbul | 600.00 |
30 | Ankara | 900.00 |
35 | İzmir | 700.00 |
Bu sorgu, yaş ve bölgeye göre müşterileri gruplar ve her gruptaki toplam fiyatı hesaplar. Bu sayede, her yaş ve bölgedeki müşterilerin ne kadar harcadığını görebiliriz.
Özetle, GROUP BY ifadesi MySQL'de verileri gruplama işlemlerinde kullanılır. Birden fazla sütuna da göre gruplama yapabiliriz ve her gruptaki veriler için toplama, ortalama vb. işlemler yapabiliriz.
Sıralama İşlemleri
MySQL veritabanında sıralama işlemleri için "ORDER BY" ifadesi kullanılır. Bu ifade, verilerin bir sütuna göre sıralanmasını sağlar. ORDER BY ifadesi, sütun adı ve sıralama türü belirterek kullanılır. Sıralama türleri, ASC (yükselen) ve DESC (azalan) olarak belirtilir.
Aşağıda ORDER BY ifadesinin nasıl kullanıldığını gösteren bir örnek verilmiştir:
Ad | Soyad | Yaş |
---|---|---|
Ahmet | Yılmaz | 32 |
Ali | Bulut | 28 |
Sinem | Atalay | 25 |
Yukarıdaki tablodaki verilerin YAŞ sütununa göre yükselen sıralamaya göre sıralanması gerektiğinde, aşağıdaki SQL ifadesi kullanılır:
- SELECT * FROM tablo_adi ORDER BY yas ASC;
Bu ifade, tablodaki verileri YAŞ sütununa göre yükselen sıralamaya göre sıralar. Eğer verileri azalan sıralamaya göre sıralamak istiyorsak, ASC yerine DESC kullanılır.
ORDER BY ifadesinin daha karmaşık kullanımları da vardır. Birden fazla sütuna göre sıralama yapmak, tarih sıralaması gibi durumlar için farklı kullanım şekilleri bulunmaktadır. Ancak temel olarak, sütun adı ve sıralama türü belirtilerek kullanılır.
Çoklu Sıralama
MySQL veritabanında sıralama işlemlerinde birden fazla alan kullanarak sıralama yapmak mümkündür. Bu yöntemde, öncelikle ilk sıralama kriteri belirtilir ve daha sonra diğer alanlar sıralama işlemine dahil edilir.
ORDER BY ifadesi ile sıralama işlemi gerçekleştirilirken, ikinci kullanılan kriter ASC (artan şekilde) veya DESC (azalan şekilde) belirtilir. Örneğin, bir tablodaki öğrencilerin notlarını sınıfına göre sıralamak istediğimizi düşünelim. Bunun için öncelikle GROUP BY ifadesi ile sınıfları gruplamalıyız. Daha sonra, ORDER BY ifadesi ile notlara göre artan veya azalan şekilde sıralamalıyız. Ancak, öğrencilerin notları aynıysa, bu durumda öğrenci isimleri alfabetik olarak sıralanabilir.
Öğrenci Adı | Sınıfı | Notu |
---|---|---|
Ahmet | 10-A | 90 |
Mehmet | 9-B | 85 |
Ali | 10-A | 95 |
Zeynep | 11-C | 85 |
Bu örnekte, sınıfına göre gruplama yapılır ve daha sonra notlar artan şekilde sıralanır. Ancak, Ahmet ve Ali'nin notları eşit olduğu için isimlerine göre alfabetik sıralama yapılır. Sıralama işlemi sonucunda öğrenciler şöyle bir sıralamaya tabi tutulabilir:
- 10-A sınıfından Ali (95)
- 10-A sınıfından Ahmet (90)
- 9-B sınıfından Mehmet (85)
- 11-C sınıfından Zeynep (85)
Bu işlemin gerçekleştirilebilmesi için sıralama işlemi sırasında çoklu alanların belirtilmesine dikkat etmek gerekir. Ayrıca, sıralama işlemi sırasında her bir kriter için ASC veya DESC belirtilmesi de gereklidir.
Tarih Sıralama
MySQL'de tarih sıralama işlemleri oldukça önemlidir. Verilerin tarihe göre sıralanması, kullanıcılara daha anlamlı sonuçlar sunar. MySQL'de tarihler genellikle YYYY-MM-DD formatında saklanır. Bu formatın kullanılması, tarih sıralama işlemini kolaylaştırır.
Tarih sıralama işlemi, ORDER BY ifadesi kullanılarak gerçekleştirilebilir. Örneğin, bir veritabanında bulunan ürünlerin son eklenme tarihine göre sıralanması şu şekilde yapılabilir:
Ürün Adı | Son Eklenme Tarihi |
---|---|
Ürün 1 | 2022-01-01 |
Ürün 2 | 2022-02-15 |
Ürün 3 | 2022-03-29 |
Bu tabloda, son eklenme tarihi sütununu kullanarak ORDER BY ifadesi ile tarih sıralaması yapılmıştır. Veriler en yeni tarihten en eskiye doğru sıralanmıştır.
- ASC (artan) ve DESC (azalan) sıralama yöntemleri, tarih sıralama işleminde de kullanılabilir.
- Tarihlerin yanı sıra, veritabanında bulunan diğer zaman verileri de sıralanabilir. Örneğin, saat veya dakika
MySQL'de tarih sıralama işlemleri oldukça kullanışlıdır ve verilerin daha anlamlı bir şekilde sunulmasına yardımcı olur. Bu işlemin kullanımı, özellikle tarih temelli uygulamalarda oldukça sık görülen bir durumdur. Yukarıdaki örnek sayesinde, tarih sıralama işleminin nasıl gerçekleştirilebileceği hakkında bir fikir edinebilirsiniz.
Alfabetik Sıralama
MySQL'de alfabetik sıralama, ORDER BY ifadesi kullanılarak yapılır. Verilerin alfabetik sıraya göre sıralanması için, ORDER BY ifadesi kullanılarak verilerin hangi sütuna göre sıralanacağı belirtilmelidir. ORDER BY ifadesi, ASC (Artan) veya DESC (Azalan) olarak sıralama özelliği sağlar.
Örneğin, İsim sütununu alfabetik olarak sıralamak için, aşağıdaki SQL ifadesi kullanılabilir:
Örnek Kod |
---|
SELECT * FROM Calisanlar ORDER BY Isim ASC; |
Bu SQL ifadesi, Calisanlar tablosundaki verileri, Isim sütununa göre alfabetik olarak sıralama özelliğiyle birlikte getirir.
Bazı durumlarda, aynı isme sahip birden fazla veri olabilir. Bu durumda, MySQL alfabetik sıralama işlemini gerçekleştirirken diğer sütunların da dikkate alınması gerekir.
Örneğin, İsim sütunu aynı olan çalışanlar bulunabilir. Bu durumda, yaşa göre sıralama işlemi gerçekleştirebilirsiniz. Böylece aynı isme sahip çalışanlar yaşlarına göre alfabetik olarak sıralanmış olur.
Örnek Kod |
---|
SELECT * FROM Calisanlar ORDER BY Isim ASC, Yas DESC; |
Bu SQL ifadesi, Calisanlar tablosundaki verileri, İsim sütununa göre alfabetik olarak sıralama özelliği ile birlikte aynı isme sahip çalışanların yaşlarına göre azalan sıralama özelliği verir.
Alfabetik sıralama işleminde, büyük/küçük harf ayrımı yapılmaktadır. Örneğin, "A" büyük harf iken "a" küçük harf olarak değerlendirilir ve alfabetik sıralama işlemine etki eder.
MySQL'de alfabetik sıralama, verileri kolayca bulmak ve düzenlemek için oldukça faydalıdır.
Limit Belirleme
MySQL'de Limit ifadesi, sorguların sadece belirli bir sayıda sonuç döndürmesini sağlar. Bu, büyük veri kümeleriyle çalışırken sonuçları daha yönetilebilir hale getirebilir. LIMIT ifadesi, bazı verileri veritabanından hızlı bir şekilde almanız gerektiğinde de kullanışlıdır.
Limit ifadesi, birden fazla kayıt döndüren sorgulara eklenir ve sorgunun sonunda belirlenir. Örneğin, "SELECT * FROM customers LIMIT 5;" sorgusu, customers tablosundaki ilk beş kaydı döndürecektir.
Limit ifadesi ayrıca, sorguları sayfalandırmak için de kullanılabilir. Bu, büyük bir sonuç kümesi varsa, sayfa sayfaya sonuçları almanızı ve görüntülemenizi sağlar. Örneğin, "SELECT * FROM customers LIMIT 0,5;" sorgusu, customers tablosundaki kayıtların altıncısından onuncusuna kadar olan kayıtları döndürecektir.
Limit ifadesi, ayrıca diğer ifadelerle birleştirilebilir. Örneğin, "SELECT * FROM customers WHERE country='Turkey' ORDER BY customerName LIMIT 5;" sorgusu, Türkiye'den olan müşterilerin isimlerini müşteri adına göre sıralar ve ilk beş sonucu döndürür.
Limit ifadesi verimsiz bir şekilde kullanılarak performans sorunlarına neden olabilir, bu nedenle dikkatli bir şekilde kullanılmalıdır. Kayıtlar yerine verilerin alt kümesine ihtiyacınız varsa, veritabanı görüntüleyicisi veya diğer araçlar kullanılabilir.
Toplam ve Ortalama İşlemleri
MySQL veritabanında toplam ve ortalama işlemleri oldukça önemlidir. Bu işlemler, başka işlemlerle birleştirildiğinde verilerin analiz edilmesine yardımcı olabilir. Bu nedenle, MySQL'de toplam ve ortalama işlemlerinin nasıl yapılacağı ve örnekleri hakkında bilgi sahibi olmak oldukça önemlidir.
MySQL'de toplam işlemi için SUM ifadesi kullanılır. Bu ifade, veritabanındaki belirli bir sütundaki tüm sayıların toplamını hesaplar. Örneğin, "orders" tablosunda "price" sütununda yer alan tüm ürün fiyatlarının toplamını hesaplamak istediğinizi varsayalım. Bunun için aşağıdaki sorguyu kullanabilirsiniz:
SQL Sorgusu | Sonuç |
---|---|
SELECT SUM(price) FROM orders; | Toplam ürün fiyatları |
MySQL'de ortalama işlemi için AVG ifadesi kullanılır. Bu ifade, veritabanındaki belirli bir sütundaki tüm sayıların ortalamasını hesaplar. Örneğin, "orders" tablosunda "price" sütunundaki ürün fiyatlarının ortalamasını hesaplamak istediğinizi varsayalım. Bunun için aşağıdaki sorguyu kullanabilirsiniz:
SQL Sorgusu | Sonuç |
---|---|
SELECT AVG(price) FROM orders; | Ürün fiyatları ortalaması |
Yukarıdaki örneklerde, "orders" tablosundaki "price" sütunu kullanıldı, ancak farklı sütunlar veya tablolar da kullanılabilir. Bu işlemler ayrıca WHERE veya GROUP BY gibi diğer ifadelerle birleştirilerek daha karmaşık sorgulara da olanak tanır.
TOP N Sonuçları Alma
MySQL'de sorguların sonucunda tüm kayıtların görünmesi bazen istenmeyebilir. Bu durumlarda, sadece belirli bir sayıda sonucun görüntülenmesi gerekebilir. Bunun için MySQL'de LIMIT ifadesi kullanılır.
Örneğin, bir ürün listesi veritabanının sadece ilk 10 ürününün görüntülenmesi gerektiğini düşünelim. Bu durumda, sorgumuz şu şekilde olacaktır:
Sorgu | Açıklama |
---|---|
SELECT * FROM Urunler LIMIT 10; | Urunler tablosundan ilk 10 kaydı alır. |
Bu sorgu, Urunler tablosundaki ilk 10 kaydı listeler. Ayrıca, LIMIT ifadesi ile sayfa numaralandırması da yapılabilmektedir. Örneğin, sayfa başına 10 ürün görüntülemek istediğimizde, ilk sayfayı gösteren sorgumuz şu şekilde olacaktır:
Sorgu | Açıklama |
---|---|
SELECT * FROM Urunler LIMIT 0,10; | Urunler tablosundan 1-10 arası kayıtları alır. |
Bu sorgu, Urunler tablosundaki ilk 10 kaydı listeler. 2. sayfa için sorgumuzu şu şekilde oluşturabiliriz:
Sorgu | Açıklama |
---|---|
SELECT * FROM Urunler LIMIT 10,10; | Urunler tablosundan 11-20 arası kayıtları alır. |
Bu sorgu sayesinde, Urunler tablosundaki 11-20 arası kayıtları görüntüleyebiliriz.
Ortalama Hesaplama
Ortalama hesaplama işlemi, veritabanında bulunan bir veri kümesinin ortalamasının alınması işlemidir. MySQL'de, bir sütundaki sayısal değerlerin ortalaması AVG() fonksiyonu ile bulunur. Bu fonksiyon, gruplama işlemleri ile birlikte kullanılabilir.
Örnek olarak, bir ürünün fiyatları farklı tarihlerde, farklı ülkelerde farklı olabilir. Fiyatları takip etmek için bir veritabanı oluşturduğumuzu varsayalım. Fiyat sütununu kullanarak her ülkeye ait fiyatların ortalamasını bulmak için, aşağıdaki SQL sorgusu kullanılabilir.
SELECT ülke, AVG(fiyat)FROM fiyatlarGROUP BY ülke;
Bu sorgu, fiyatlar tablosundan ülke adı ve fiyat sütunlarından verileri alır ve GROUP BY ifadesi ile ülkelere gruplar. AVG() fonksiyonu, her ülkeye ait fiyatların ortalamasını hesaplar. Sonuç, ülkelere göre gruplandırılmış ortalama fiyatları içeren bir tablo şeklinde döndürülür.
Ortalama hesaplama işlemi için farklı filtreleme yöntemleri de kullanılabilir. WHERE ifadesi ile belirli bir ülkedeki fiyatların ortalaması alınabilir, JOIN ile başka bir tablo ile birleştirilerek, farklı kategorilerdeki ürünlerin fiyatlarının ortalaması bulunabilir.
Özetle, MySQL'de bir veritabanındaki veri kümesinin ortalamasını almak için, AVG() fonksiyonu kullanılır. Bu fonksiyon, GROUP BY ifadesi ile birlikte kullanılabilir. Ortalama hesaplaması için farklı filtreleme yöntemleri de kullanılabilir. Bu yöntemler, farklı verilerin ortalamasını almak için kullanılabilir ve işlemler kolayca uygulanabilir.
Uygulamalı Örnekler
MySQL veritabanında işlemler yaparken gruplama, sıralama, toplama ve ortalamalama işlemleri oldukça sık kullanılan fonksiyonlardandır. Bu işlemleri gerçekleştirmek için yukarıda bahsettiğimiz nitelikleri kullanarak uygun bir sorgu oluşturulmalı ve sonuçlar elde edilmelidir.
Bu örneklerde, bazı işlemlerin nasıl yapılacağı gösterilecektir. Örneğin, gruplama işlemini kullanarak bir oyun mağazasındaki oyunların kategorilere göre toplam satışlarını hesaplayacağız. İlk olarak, GROUP BY ifadesini kullanarak her kategori için toplam satış miktarını bulacağız. Aşağıdaki sorguyu kullanarak bu işlemi gerçekleştirebiliriz:
SELECT kategori, SUM(satis_miktari) as toplam_satış | FROM oyunlar | GROUP BY kategori; |
---|---|---|
Strateji | 1000 | |
Aksiyon | 500 | |
Simülasyon | 750 |
Bu sorgu, her kategori için toplam satış miktarını gösterir ve satis_miktari sütununu toplar. Bu sayede, oyun mağazasındaki hangi kategorilerin daha fazla satıldığını görebiliriz.
Bir diğer örnek ise, ORDER BY ifadesini kullanarak bir veritabanındaki çalışanların yaşı ve maaşına göre sıralamaktır. Bu örneği gerçekleştirmek için aşağıdaki sorguyu kullanabiliriz:
SELECT ad, yas, maas | FROM calisanlar | ORDER BY yas, maas DESC; |
---|---|---|
Ahmet | 25 | 5000 |
Mustafa | 27 | 6000 |
Ayşe | 30 | 7000 |
Bu sorgu, çalışanları yaşa göre küçükten büyüğe, maaşa göre ise büyükten küçüğe sıralar.
Yukarıdaki örneklerde olduğu gibi, MySQL veritabanında kullanabileceğimiz birçok işlem vardır. Bu işlemleri iyi bir şekilde kullanarak veritabanınızda gerekli sorguları yapabilir ve verilerinizi doğru bir şekilde işleyebilirsiniz.