Сартаванне запісаў праз SQL запыт у Python

Каб адсартаваць радкі выніку, трэба скарыстацца камандай ORDER BY.

Прыклад

Выбярэм з нашай табліцы users усіх юзераў і адсартуем іх па ўзросце ад меншага да большага:

pythonquery = "SELECT * FROM users ORDER BY age"

Вынік выкананага кода:

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}

Прыклад

Памяняем парадак сартавання з дапамогай каманды DESC:

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

Вынік выкананага кода:

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}

Прыклад

Выбярэм усіх юзераў з зарплатай 500 і адсартуем іх па ўзросце ад меншага да большага:

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

Вынік выкананага кода:

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}

Прыклад

Можна сартаваць не па адным полі, а па некалькіх. Давайце для прыкладу выбярэм усіх юзераў і адсартуем іх спачатку па узрастанню ўзросту, а юзераў з аднолькавымі узростамі адсартуем па ўзрастанню зарплаты:

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

Вынік выкананага кода:

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}

Прыклад

Каманду ORDER BY можна камбінаваць з LIMIT . Пры гэтым спачатку трэба пісаць каманду сартавання, а потым - ліміт. У наступным прыкладзе спачатку адсартуем запісы па ўзрастанню ўзросту, а потым возьмем першыя 3 штукі:

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

Вынік выкананага кода:

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}

Практычныя задачы

Задание 1

Дастаньце ўсіх юзераў і адсартуйце іх па ўзрастанню зарплаты.

Задание 2

Дастаньце ўсіх юзераў і адсартуйце іх па ўбыванню зарплаты.

Задание 3

Дастаньце ўсіх юзераў і адсартуйце іх па імені.

Задание 4

Дастаньце юзераў з зарплатай 500 і адсартуйце іх па ўзросце.

Задание 5

Дастаньце ўсіх юзераў і адсартуйце іх па імені і па зарплаце.

Задание 6

Адсартуйце юзераў па ўзрастанню зарплаты і атрымайце першыя 3 работніка з выніку сартавання.

Задание 7

Адсартуйце юзераў па ўбыванню зарплаты і атрымайце першыя 3 юзера з выніку сартавання.