Сартаванне запісаў праз SQL запыт у Python
Каб адсартаваць радкі выніку,
трэба скарыстацца камандай ORDER
BY.
Прыклад
Выбярэм з нашай табліцы users усіх
юзераў і адсартуем іх па ўзросце ад
меншага да большага:
query = "SELECT * FROM users ORDER BY age"
Вынік выкананага кода:
{'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:
query = "SELECT * FROM users ORDER BY age DESC"
Вынік выкананага кода:
{'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
і адсартуем іх па ўзросце ад меншага
да большага:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Вынік выкананага кода:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Прыклад
Можна сартаваць не па адным полі, а па некалькіх. Давайце для прыкладу выбярэм усіх юзераў і адсартуем іх спачатку па узрастанню ўзросту, а юзераў з аднолькавымі узростамі адсартуем па ўзрастанню зарплаты:
query = "SELECT * FROM users ORDER BY age, salary"
Вынік выкананага кода:
{'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 штукі:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Вынік выкананага кода:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Практычныя задачы
Дастаньце ўсіх юзераў і адсартуйце іх па ўзрастанню зарплаты.
Дастаньце ўсіх юзераў і адсартуйце іх па ўбыванню зарплаты.
Дастаньце ўсіх юзераў і адсартуйце іх па імені.
Дастаньце юзераў з зарплатай 500 і
адсартуйце іх па ўзросце.
Дастаньце ўсіх юзераў і адсартуйце іх па імені і па зарплаце.
Адсартуйце юзераў па ўзрастанню зарплаты
і атрымайце першыя 3 работніка з
выніку сартавання.
Адсартуйце юзераў па ўбыванню зарплаты
і атрымайце першыя 3 юзера з
выніку сартавання.