SQL’de ORDER BY komutu, sorgu sonuçlarını belirli bir sütuna göre artan (ASC) veya azalan (DESC) sırayla sıralamak için kullanılır. Özellikle büyük veri tablolarında verileri daha okunaklı hale getirmek için önemlidir.
1. ORDER BY Temel Kullanımı
📌 ORDER BY, varsayılan olarak artan (ASC) sıraya göre sıralama yapar. Azalan (DESC) sıralama yapmak için ayrıca belirtilmelidir.
Örnek Senaryo:
Bir müşteriler tablomuz olsun:
müşteri_id | ad | soyad | doğum_tarihi | bakiye |
---|---|---|---|---|
101 | Ahmet | Yılmaz | 1990-05-12 | 15000 |
102 | Ayşe | Demir | 1985-07-24 | 22000 |
103 | Mehmet | Çelik | 1992-11-03 | 18000 |
104 | Zeynep | Kaya | 1995-02-18 | 30000 |
2. Artan Sıralama (ASC) Kullanımı
📌 Müşterileri bakiyelerine göre küçükten büyüğe sıralayalım.
SELECT * FROM müşteriler
ORDER BY bakiye ASC;
✅ Sonuç:
müşteri_id | ad | soyad | doğum_tarihi | bakiye |
---|---|---|---|---|
101 | Ahmet | Yılmaz | 1990-05-12 | 15000 |
103 | Mehmet | Çelik | 1992-11-03 | 18000 |
102 | Ayşe | Demir | 1985-07-24 | 22000 |
104 | Zeynep | Kaya | 1995-02-18 | 30000 |
📌 ORDER BY ASC kullanıldığı için en düşük bakiyeden en yükseğe doğru sıralandı.
3. Azalan Sıralama (DESC) Kullanımı
📌 Müşterileri bakiyelerine göre büyükten küçüğe sıralayalım.
SELECT * FROM müşteriler
ORDER BY bakiye DESC;
✅ Sonuç:
müşteri_id | ad | soyad | doğum_tarihi | bakiye |
---|---|---|---|---|
104 | Zeynep | Kaya | 1995-02-18 | 30000 |
102 | Ayşe | Demir | 1985-07-24 | 22000 |
103 | Mehmet | Çelik | 1992-11-03 | 18000 |
101 | Ahmet | Yılmaz | 1990-05-12 | 15000 |
📌 ORDER BY DESC kullanıldığı için en yüksek bakiyeden en düşük bakiyeye doğru sıralandı.
4. Birden Fazla Sütuna Göre Sıralama
📌 Önce soyada göre alfabetik, sonra aynı soyadlıları ada göre sıralayalım.
SELECT * FROM müşteriler
ORDER BY soyad ASC, ad ASC;
📌 Soyada göre sıraladıktan sonra, soyadı aynı olanları ada göre sıralayacak.
5. Tarihe Göre Sıralama
📌 Müşterileri doğum tarihine göre en eski doğum tarihinden en yeniye doğru sıralayalım.
SELECT * FROM müşteriler
ORDER BY doğum_tarihi ASC;
✅ Sonuç:
müşteri_id | ad | soyad | doğum_tarihi | bakiye |
---|---|---|---|---|
102 | Ayşe | Demir | 1985-07-24 | 22000 |
101 | Ahmet | Yılmaz | 1990-05-12 | 15000 |
103 | Mehmet | Çelik | 1992-11-03 | 18000 |
104 | Zeynep | Kaya | 1995-02-18 | 30000 |
📌 Tarih verilerini sıralarken ASC ile eskiden yeniye, DESC ile yeniden eskiye sıralayabiliriz.
ORDER BY Kullanımı Özet
Komut | Açıklama |
---|---|
ORDER BY sütun ASC | Belirtilen sütuna göre artan sıralama (varsayılan). |
ORDER BY sütun DESC | Belirtilen sütuna göre azalan sıralama. |
ORDER BY sütun1, sütun2 | Önce sütun1, eşit değerlerde sütun2 sıralanır. |