Python'da SQL Sorgusu ile Kayıtları Sıralama
Sonuç satırlarını sıralamak için,
ORDER
BY komutunu kullanmanız gerekir.
Örnek
users tablomuzdan tüm
kullanıcıları seçelim ve yaşlarını küçükten
büyüğe doğru sıralayalım:
query = "SELECT * FROM users ORDER BY age"
Yürütülen kodun sonucu:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
Örnek
DESC komutuyla sıralama düzenini
değiştirelim:
query = "SELECT * FROM users ORDER BY age DESC"
Yürütülen kodun sonucu:
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Örnek
Maaşı 500 olan tüm kullanıcıları
seçelim ve yaşlarını küçükten büyüğe
doğru sıralayalım:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Yürütülen kodun sonucu:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Örnek
Bir değil, birden fazla alana göre sıralama yapılabilir. Örnek olarak tüm kullanıcıları seçelim ve önce yaşları artan şekilde, ardından aynı yaştaki kullanıcıları da maaşları artan şekilde sıralayalım:
query = "SELECT * FROM users ORDER BY age, salary"
Yürütülen kodun sonucu:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
Örnek
ORDER BY komutu,
LIMIT ile birleştirilebilir.
Bu durumda önce sıralama komutu, sonra
- limit yazılmalıdır.
Aşağıdaki örnekte, önce kayıtları yaşa
göre artan şekilde sıralayacağız, ardından
ilk 3 tanesini alacağız:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Yürütülen kodun sonucu:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Pratik Görevler
Tüm kullanıcıları alın ve maaşlarını artan şekilde sıralayın.
Tüm kullanıcıları alın ve maaşlarını azalan şekilde sıralayın.
Tüm kullanıcıları alın ve isme göre sıralayın.
Maaşı 500 olan kullanıcıları
alın ve yaşa göre sıralayın.
Tüm kullanıcıları alın ve isme ve maaşa göre sıralayın.
Kullanıcıları maaşa göre artan şekilde
sıralayın ve sıralama sonucundaki ilk
3 çalışanı alın.
Kullanıcıları maaşa göre azalan şekilde
sıralayın ve sıralama sonucundaki ilk
3 kullanıcıyı alın.