MySQL'de Gruplama, Sıralama ve Filtreleme İşlemleri Nasıl Yapılır?

MySQL'de Gruplama, Sıralama ve Filtreleme İşlemleri Nasıl Yapılır?

MySQL veritabanında gruplama, sıralama ve filtreleme işlemleri oldukça önemlidir Gruplama işlemi, verilerimizi belirli özelliklerine göre gruplandırarak sonuçlar elde etmemizi sağlar Sıralama işlemi ise verilerimizi belirli bir sıraya göre düzenleyerek daha anlamlı sonuçlar elde etmemizi sağlar ASC ve DESC komutları sıralama işleminde yaygın olarak kullanılır Filtreleme işlemi ise belirli bir duruma uygun verilerimizin gösterilmesini sağlar WHERE ifadesi bu işlemlerde kullanılır Verilerin gruplandırılması, sıralanması ve filtrelenmesi doğru şekilde yapıldığında, veri analizi ve raporlama işlemleri daha anlamlı hale gelir

MySQL'de Gruplama, Sıralama ve Filtreleme İşlemleri Nasıl Yapılır?

MySQL veritabanı, büyük miktardaki verileri yönetmek ve organize etmek için ideal bir seçenektir. Ancak, bu verilerin gruplandırılması, sıralanması ve filtrelenmesi gibi işlemlerin yapılması da oldukça önemlidir. Bu makalede, MySQL'de gruplama, sıralama ve filtreleme işlemlerinin nasıl yapılacağını öğreneceksiniz.

Gruplama işlemi, bir veri kümesindeki verileri belirli bir özelliklerine göre gruplandırmak anlamına gelir. Bu işlem için "GROUP BY" ifadesi kullanılır. Sıralama işlemi ise verilerin belirli bir sıraya göre düzenlenmesidir. Bunun için "ORDER BY" ifadesi kullanılır ve "ASC" veya "DESC" parametreleri ile verilerin artan veya azalan şekilde sıralanmasını belirtebilirsiniz. Filtreleme işlemi ise belirli bir duruma uygun verilerin gösterilmesini sağlar. Bunun için "WHERE" ifadesi kullanılır ve "LIKE" veya "IN" gibi parametreleri ile verilerin belirli bir özelliklere göre filtrelenmesi sağlanabilir.


Gruplama İşlemleri

MySQL'de gruplama işlemleri, veri gruplarını toplayarak birleştirilmiş sonuçlar verir. Bu işlem için kullanılan temel kod, SELECT, GROUP BY ve COUNT() fonksiyonudur.

SELECT sorgusu, veri tabanından istenilen sütunları seçer. GROUP BY sorgusu, seçilen verileri hangi sütuna göre gruplandıracağımızı belirler. COUNT() fonksiyonu ise gruplama işlemine göre sayım yapan fonksiyondur.

Örneğin, bir şirkette çalışanların maaşlarını gruplayıp, her maaş aralığı için kaç kişi olduğunu görmek istiyoruz. Bu işlem için aşağıdaki sorgu kullanılabilir:

```SELECT salary, COUNT(*) FROM employees GROUP BY salary;```Bu sorgu, employees tablosundan tüm çalışan maaşlarını seçer ve aynı maaşa sahip çalışanları gruplar. Sonrasında, aynı maaşa sahip çalışanların sayısını COUNT() fonksiyonuyla hesaplar.

GROUP BY sorgusunu kullanırken, bazen birkaç sütunu birleştirmek isteyebilirsiniz. Bu durumda, GROUP BY sorgusu için tüm sütunları virgülle ayrılmış bir şekilde listeleyebilirsiniz.

```SELECT department, gender, COUNT(*) FROM employees GROUP BY department, gender;```Bu sorgu, employees tablosundan tüm çalışan bölümlerini ve cinsiyetlerini seçer ve bu iki sütuna göre çalışanları gruplar. Aynı bölüm ve cinsiyete sahip olan çalışanların sayısını COUNT() fonksiyonu ile hesaplar.

MySQL'de gruplama işlemleri, SQL sorgularında oldukça önemli bir yer tutar. Veritabanında büyük miktarda veri varsa, verileri gruplandırmak ve raporlamak için gruplama işlemlerinin doğru kullanılması gerekmektedir.


Sıralama İşlemleri

MySQL veritabanında sıralama işlemleri oldukça sık kullanılır. Genellikle verileri belirli bir sıraya sokmak amacıyla tercih edilir. Sıralama işleminde ASC (artan) ve DESC (azalan) kullanımı oldukça yaygındır.

ASC ve DESC Kullanımı:Sıralama işleminde en çok kullanılan yöntemlerden biri ASC ve DESC kullanımıdır. ASC kullanıldığında belirlenen sütunun içeriği artan sıraya göre listelenir. Örneğin, kişilerin yaşlarına göre sıralandığında en küçük yaş üstte, en büyük yaş en alta gelecektir. Bunun tam tersi için ise DESC kullanılır. Bu şekilde belirlenen sütundaki veriler azalan sıraya göre listelenir.

Sıralama Örnekleri:MySQL'de sıralama işlemi için kullanılabilecek birkaç kod örneği vardır. Bunlardan biri "ORDER BY" kodudur. Bu kod kullanarak belirli bir sütunu artan veya azalan sıraya göre sıralayabilirsiniz. Örneğin, "SELECT * FROM kisiler ORDER BY yas ASC" kullanarak kişiler tablosundaki verileri yaşlarına göre artan sıraya göre listeleyebilirsiniz.

Ayrıca "SELECT * FROM kisiler ORDER BY ad ASC, yas DESC" kullanarak birden fazla sütuna göre sıralama yapabilirsiniz. Bu kodda ilk olarak "ad" sütunu artan sırayla, sonra "yas" sütunu azalan sırayla listelenir.

MULTIPLE VIEWS:Bir diğer sıralama yöntemi ise Multiple Views ile gerçekleştirilir. Birden fazla görünüm kullanarak sıralama yapmak mümkündür. Bu yöntemde verileri farklı sıralamalarla farklı görünümlerde listeleyebilirsiniz.

Multiple Views, özellikle farklı kullanıcılar ve farklı ihtiyaçlar için sıralama yapmak isteyenler için oldukça yararlıdır. Farklı sıralamalar farklı amaçlara hizmet edebilir, bu nedenle birkaç farklı görünüm oluşturarak verileri farklı şekillerde görebilirsiniz.

Limit ve OFFSET Kullanımı:Sıralama işlemi sırasında "LIMIT" ve "OFFSET" kodları da kullanılabilir. LIMIT kullanarak, belirlenen miktar kadar veriyi listeleyebilirsiniz. Örneğin, "SELECT * FROM kisiler ORDER BY yas ASC LIMIT 5" kullanarak yaşlarına göre en küçük 5 kişiyi listelerseniz.

OFFSET ise belirli bir sayıda kaydı atlar ve sıralamanın geri kalanını listeler. Örneğin, "SELECT * FROM kisiler ORDER BY yas ASC LIMIT 5 OFFSET 2" kullanarak en küçük 5 yaşındaki kişiler arasındaki 2 kişiyi atlayarak verileri görebilirsiniz.

Bu şekilde sıralama işlemleri, belirli kriterlere göre verileri listeleyerek anlamlı sonuçlar ortaya çıkarır ve verilerin daha düzenli görünmesini sağlar.


ASC ve DESC Kullanımı

ASC ve DESC kullanımı, MySQL veritabanında sıralama işlemi yaparken oldukça önemli bir yer tutar. ASC kısaltması ascending (artan) anlamına gelirken, DESC kısaltması descending (azalan) anlamına gelir. Yani, ASC kullanıldığında sıralama artan, DESC kullanıldığında ise sıralama azalan olacaktır.

Sıralama işlemi yaparken, öncelikle sütun ismini belirlememiz gerekiyor. Ardından, ASC veya DESC komutlarından birini yazarak sıralama işlemini gerçekleştiriyoruz. Örneğin, "SELECT * FROM tablo_adi ORDER BY sütun_adi ASC" komutu ile tablo_adi tablosundaki sütun_adi sütununu artan şekilde sıralayabilirsiniz. Eğer sıralamayı azalan şekilde yapmak isterseniz, ASC yerine DESC kullanmanız yeterli olacaktır.

Bazı durumlarda, sıralama işlemini birden fazla sütuna göre yapmak isteyebilirsiniz. Bu durumda, sütun isimleri arasına virgül koyarak sıralama işlemini gerçekleştirebilirsiniz. Örnek olarak, "SELECT * FROM tablo_adi ORDER BY sütun_adi1 ASC, sütun_adi2 DESC" komutu ile tablo_adi tablosundaki sütun_adi1 sütununu artan, sütun_adi2 sütununu ise azalan şekilde sıralayabilirsiniz.


Sıralama Örnekleri

MySQL'de sıralama yapmak için kullanabileceğiniz birçok kod vardır. Bazı örnekler şunlardır:

Kod Açıklama
SELECT * FROM tablo_adi ORDER BY sütun_adi ASC; Sütunun küçükten büyüğe doğru sıralamasını yapar.
SELECT * FROM tablo_adi ORDER BY sütun_adi DESC; Sütunun büyükten küçüğe doğru sıralamasını yapar.
SELECT * FROM tablo_adi ORDER BY sütun_adi1 ASC, sütun_adi2 DESC; Sütun_adi1'e göre küçükten büyüğe, aynı değer durumunda ise sütun_adi2'ye göre büyükten küçüğe doğru sıralama yapar.

Yukarıdaki örnekler sadece birkaç tanesidir. MySQL'de sıralama yapmak için kullanabileceğiniz daha birçok kod bulunmaktadır. Sıralama işlemlerinde birden fazla sütuna veya kritere göre sıralama yapmak mümkündür. Bunun yanı sıra, sıralama işlemleri için LIMIT ve OFFSET kullanımı ile de belirli bir sayıda veri veya belirli bir aralıktaki verileri görüntülemek mümkündür.


MULTIPLE VIEWS

Sıralama yaparken bazen aynı veri kümesini farklı şekillerde görmek isteyebilirsiniz. İşte burada multiple views devreye girer. Birden fazla görünüm kullanarak sıralama yapmak mümkündür.

Multiple views ile, aynı sorguyu farklı şekillerde görüntüleyebilirsiniz. Örneğin, bir sorguyu sıralayabilir ve sonucu tablo şeklinde veya liste şeklinde görüntüleyebilirsiniz. Bu, verileri daha iyi anlamak ve analiz etmek için son derece yararlıdır.

Bunun için CREATE VIEW ifadesini kullanmanız gerekiyor. Bu ifade ile yeni bir görünüm oluşturabilirsiniz. Daha sonra, oluşturduğunuz bu görünümü kullanarak sorgu yapabilirsiniz.

Örneğin, bir tablodan sıralama yapmak için kullanacağınız sorguyu şu şekilde yazabilirsiniz:

CREATE VIEW my_view ASSELECT column_nameFROM table_nameORDER BY column_name ASC;

Bu sorgu, my_view adında bir görünüm oluşturur. SELECT sorgusunda sıralama yapılır ve sonuç my_view adlı görünümde depolanır.

Daha sonra, bu görünümü kullanarak sorgu yapabilirsiniz:

SELECT *FROM my_view

Bu, sorgudaki herhangi bir değişiklikte görünümün değişmeyeceği anlamına gelir. Görünüm, orijinal sorgunun sonucunu temsil eder.

Multiple views kullanarak verileri daha iyi analiz etmek ve anlamak için farklı perspektifler sunabilirsiniz. Bu, sıralama işlemlerinde son derece yararlıdır.


LIMIT ve OFFSET Kullanımı

MySQL'de sıralama işleminde kullanılan limit ve offset özellikleri, sorgudan gelen sonuç kümesinin sadece bir kısmını göstermek için kullanılır. LIMIT kullanımı, sorgunun sonucunda dönen veri kümesinde kaç tane kayıt gösterileceğini belirlerken, OFFSET kullanımı ise sonuç kümesindeki kaçıncı satırdan başlayarak sonuçların gösterileceğini belirler.

Örneğin, "SELECT * FROM my_table LIMIT 10 OFFSET 20" sorgusu ile my_table tablosundan 20. satırdan başlayarak 10 kayıt gösterilebilir. LIMIT ve OFFSET kullanımı ile sıralama işlemi daha anlamlı hale getirilebilir. Özellikle büyük veri kümelerinde verilerin düzenlenmesi ve sonuçların kullanıcıya sunulması açısından oldukça faydalıdır.


Filtreleme İşlemleri

MySQL veritabanında filtreleme işlemleri yapmak, istediğimiz verileri çekmemizi sağlar. Bu sayede, gereksiz verilerden arındırılmış bir sonuç elde ederiz. Filtreleme işleminde WHERE ifadesi kullanılır.

Örnek olarak, bir tablodaki sadece belirli bir kriteri sağlayan verileri filtrelemek isteyebiliriz. Bu durumda WHERE kullanarak filtreleme işlemi yapmamız gerekecektir. WHERE ifadesi, belirli koşulların doğru olduğu kayıtları seçmemizi sağlar.

Bir diğer filtreleme yöntemi ise LIKE ifadesidir. Bu ifade, belirli bir kelimeyi içeren kayıtları seçmek için kullanılır. Örneğin, bir tabloda müşteri adları bulunuyorsa ve sadece 'Ali' ismini içeren kayıtları seçmek istiyorsak, WHERE ad LIKE '%Ali%' şeklinde bir kod kullanabiliriz.

IN ifadesi, belirli bir değere sahip olan kayıtları seçmek için kullanılır. Bu ifade, birden fazla değer seçmemizi de mümkün hale getirir. Örneğin, bir tabloda ülkeler listesi bulunuyorsa ve sadece Türkiye, İspanya ve İtalya ülkelerine ait kayıtları çekmek istiyorsak WHERE country IN ('Turkey', 'Spain', 'Italy') şeklinde bir kod kullanabiliriz.


WHERE Kullanımı

MySQL veritabanında filtreleme işlemi WHERE komutu kullanılarak gerçekleştirilir. WHERE komutu, "SELECT" ifadesinden sonra kullanılır ve aranan verilerin belirli kriterlere göre sorgulanmasına yardımcı olur. WHERE komutu, çeşitli operatörlerle birlikte kullanılabilir. Sorgudaki mantıksal işlemler ise "and", "or", "not" operatörleri ile gerçekleştirilir.

WHERE komutu kullanırken dikkat edilmesi gereken önemli bir nokta, eşitlik işareti kullanımıdır. "=" işareti, bir değerin başka bir değere eşit olması durumunu belirtirken, "!=" işareti kullanıldığında ise, bir değerin başka bir değere eşit olmadığı durumu ifade edilir. Bunlar yanı sıra, "<", ">", "<=", ">=" işaretleri de sorgularda kullanılmaktadır.

WHERE komutu ile gerçekleştirilebilecek bazı sorgular:

  • WHERE isim = 'Ahmet'
  • WHERE fiyat < 50
  • WHERE ürün_adı like 'elma%'
  • WHERE stok > 0 and fiyat < 100

WHERE komutu, filtreleme işlemlerinde oldukça kullanışlı bir komuttur ve veritabanı işlemlerinde sıklıkla tercih edilen bir yöntemdir.


WHERE Örnekleri

WHERE örnekleri arasında en sık kullanılanlar arasında tekil öğelerin seçimi yer almaktadır. Örneğin, bir müşterinin siparişleri için sadece "müşteri adı" veya "müşteri adı ve sipariş tarihi" gibi belirli alanların seçilmesi gereken durumlarda WHERE ifadesi kullanılabilir.

Bunun için örnek bir kod aşağıdaki gibidir:

Müşteri Adı Sipariş Tarihi
Ali 2021-05-20
Canan 2021-05-18
Ayşe 2021-05-19

Yukarıdaki gibi bir tabloda sadece Canan'ın sipariş tarihini öğrenmek istediğimizde WHERE ifadesi kullanabiliriz:

SELECT siparis_tarihi FROM siparisler WHERE musteri_adi = 'Canan';

Bu şekilde sadece Canan'ın sipariş tarihine ulaşabiliriz.

WHERE ifadesi ayrıca birden fazla koşulu kontrol etmek için de kullanılabilir. Bu durumda, AND veya OR operatörleri kullanılarak belirli koşullar sağlandığında verileri filtreleyebiliriz. Örneğin, Canan'ın sipariş tarihinden önceki tüm siparişler aşağıdaki gibi listelenebilir:

SELECT musteri_adi, siparis_tarihi FROM siparisler WHERE musteri_adi = 'Canan' AND siparis_tarihi < '2021-05-18';

Bu sorgu aynı zamanda bir "AND" operatörü kullanarak iki koşulu da sağlar. Ancak, işlem "OR" operatörü kullanılarak gerçekleştirileceği taktirde, sorgu aşağıdaki gibi olacaktır:

SELECT musteri_adi, siparis_tarihi FROM siparisler WHERE musteri_adi = 'Canan' OR musteri_adi = 'Ayşe';

Bu şekilde, Canan ya da Ayşe tarafından yapılan tüm siparişleri listeleyebiliriz.


LIKE Kullanımı

MySQL'de filtreleme işlemleri, veritabanındaki belirli kriterlere uygun verileri bulmak için kullanılır. LIKE kullanımı da filtreleme işlemlerinde sıklıkla kullanılan bir yöntemdir.

LIKE ifadesi, belirli bir kalıba veya desene uyan verileri filtrelemek için kullanılır. Örneğin, 'M%' kalıbı, M harfi ile başlayan tüm verileri bulurken '%a' kalıbı, a harfi ile biten tüm verileri bulur.

Bunun yanı sıra, '_' ifadesi tek bir karakteri temsil ederken, '%' ifadesi sıfır ya da daha fazla karakteri temsil eder.

Bu özelliklerin yanı sıra, LIKE ifadesi NOT, AND ve OR operatörleri ile de kullanılabilir. Örneğin, 'NOT LIKE' ifadesi belirli bir kalıba uymayan verileri bulmak için kullanılırken, 'AND' ifadesi iki farklı kalıba uyan verileri filtrelemek için kullanılabilir.

Bir örnek vermek gerekirse, 'SELECT * FROM ogrenciler WHERE isim LIKE 'A%' AND soyisim LIKE '%can' ' ifadesi, ismi A harfi ile başlayan ve soyismi 'can' ile biten öğrenci verilerini bulacaktır.

LIKE kullanımı, filtreleme işlemlerinde oldukça işlevseldir ve farklı kombinasyonlar ile birlikte kullanabilir. Böylece, verileri istenilen kriterlere göre filtrelemek çok daha kolay hale gelir.


IN Kullanımı

IN kullanımı, belirli bir şartı karşılayan birden fazla değeri filtrelemek için kullanılır. Bu sayede, bir sorgu ile birden fazla farklı değeri aynı anda bulabiliriz. IN ifadesi genellikle WHERE cümlesi içinde kullanılır.

IN kullanımı için şu şekilde bir örnek verebiliriz:

id adı soyadı
1 Ahmet Kaya
2 Elif Demir
3 Mehmet Yılmaz

Bu tabloyu kullanarak WHERE IN kullanımını örnekleyebiliriz. Diyelim ki sadece Ahmet ve Elif'in bilgilerini almak istiyoruz. Bunun için şu sorguyu kullanabiliriz:

SELECT * FROM tablo_adı WHERE adı IN ('Ahmet', 'Elif');
  • SELECT * FROM tablo_adı: Veritabanındaki tüm verileri seçer.
  • WHERE adı IN ('Ahmet', 'Elif'): Sadece ad alanı Ahmet veya Elif olan verileri seçer.

Bu sorgu sonucunda, sadece 1. ve 2. satırların bilgileri ekrana gelecektir. IN kullanarak filtreleme yapmak, tek tek değerleri aramak yerine belirlenen kriterlere uyan tüm değerleri seçebilmemizi sağlar.