SQL so'rovi orqali Python'da yozuvlarni saralash
Natija qatorlarini saralash uchun
ORDER BY buyrug'idan foydalanish kerak.
Misol
Keling, users jadvalidan barcha
foydalanuvchilarni tanlab, ularni yosh bo'yicha
kichikdan kattaga qarab saralaymiz:
query = "SELECT * FROM users ORDER BY age"
Bajarilgan kod natijasi:
{'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}
Misol
DESC buyrug'i yordamida saralash tartibini
o'zgartiramiz:
query = "SELECT * FROM users ORDER BY age DESC"
Bajarilgan kod natijasi:
{'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}
Misol
Maoshi 500 bo'lgan barcha foydalanuvchilarni
tanlab, ularni yosh bo'yicha kichikdan kattaga
qarab saralaymiz:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Bajarilgan kod natijasi:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Misol
Bir maydon bo'yicha emas, balki bir nechta maydonlar bo'yicha saralash mumkin. Keling, misol uchun barcha foydalanuvchilarni tanlab, avval yosh o'sish tartibida, keyin esa bir xil yoshdagi foydalanuvchilarni maosh o'sish tartibida saralaymiz:
query = "SELECT * FROM users ORDER BY age, salary"
Bajarilgan kod natijasi:
{'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}
Misol
ORDER BY buyrug'ini LIMIT bilan
birlashtirish mumkin. Bunda avval saralash
buyrug'i, keyin esa limit yoziladi.
Quyidagi misolda avval yozuvlarni yosh
o'sish tartibida saralaymiz, keyin esa
dastlabki 3 tasini olamiz:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Bajarilgan kod natijasi:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Amaliy vazifalar
Barcha foydalanuvchilarni oling va ularni maosh o'sish tartibida saralang.
Barcha foydalanuvchilarni oling va ularni maosh kamayish tartibida saralang.
Barcha foydalanuvchilarni oling va ularni ism bo'yicha saralang.
Maoshi 500 bo'lgan foydalanuvchilarni
oling va ularni yosh bo'yicha saralang.
Barcha foydalanuvchilarni oling va ularni ism va maosh bo'yicha saralang.
Foydalanuvchilarni maosh o'sish tartibida
saralang va saralash natijasidagi dastlabki
3 ishchining ma'lumotlarini oling.
Foydalanuvchilarni maosh kamayish tartibida
saralang va saralash natijasidagi dastlabki
3 foydalanuvchi ma'lumotlarini oling.