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:

pythonquery = "SELECT * FROM users ORDER BY age"

Bajarilgan kod natijasi:

python{'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:

pythonquery = "SELECT * FROM users ORDER BY age DESC"

Bajarilgan kod natijasi:

python{'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:

pythonquery = "SELECT * FROM users WHERE salary=500 ORDER BY age"

Bajarilgan kod natijasi:

python{'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:

pythonquery = "SELECT * FROM users ORDER BY age, salary"

Bajarilgan kod natijasi:

python{'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:

pythonquery = "SELECT * FROM users ORDER BY age LIMIT 3"

Bajarilgan kod natijasi:

python{'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

Задание 1

Barcha foydalanuvchilarni oling va ularni maosh o'sish tartibida saralang.

Задание 2

Barcha foydalanuvchilarni oling va ularni maosh kamayish tartibida saralang.

Задание 3

Barcha foydalanuvchilarni oling va ularni ism bo'yicha saralang.

Задание 4

Maoshi 500 bo'lgan foydalanuvchilarni oling va ularni yosh bo'yicha saralang.

Задание 5

Barcha foydalanuvchilarni oling va ularni ism va maosh bo'yicha saralang.

Задание 6

Foydalanuvchilarni maosh o'sish tartibida saralang va saralash natijasidagi dastlabki 3 ishchining ma'lumotlarini oling.

Задание 7

Foydalanuvchilarni maosh kamayish tartibida saralang va saralash natijasidagi dastlabki 3 foydalanuvchi ma'lumotlarini oling.