Kirjete sorteerimine SQL-päringu abil Pythonis

Rea tulemuse sorteerimiseks peate kasutama käsku ORDER BY.

Näide

Valime oma tabelist users kõik kasutajad ja sorteerime need vanuse järgi väiksemast suuremani:

pythonquery = "SELECT * FROM users ORDER BY age"

Käivitatud koodi tulemus:

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}

Näide

Muudame sorteerimise järjekorda kasutades käsku DESC:

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

Käivitatud koodi tulemus:

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}

Näide

Valime kõik kasutajad, kelle palk on 500 ja sorteerime need vanuse järgi väiksemast suuremani:

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

Käivitatud koodi tulemus:

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}

Näide

Võite sorteerida mitte ühe, vaid mitme välja järgi. Näitena valime kõik kasutajad ja sorteerime need esmalt vanuse kasvamise järjekorras, ning kasutajad samade vanustega sorteerime palga kasvamise järjekorras:

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

Käivitatud koodi tulemus:

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}

Näide

Käsku ORDER BY saab kombineerida käsuga LIMIT. Sel juhul tuleb esmalt kirjutada sorteerimiskäsk ja seejärel - limiit. Järgmises näites sorteerime esmalt kirjed vanuse kasvamise järjekorras ja seejärel võtame esimesed 3 tükki:

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

Käivitatud koodi tulemus:

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}

Praktilised ülesanded

Задание 1

Hankige kõik kasutajad ja sorteerige need palga kasvamise järjekorras.

Задание 2

Hankige kõik kasutajad ja sorteerige need palga kahaneva järjekorras.

Задание 3

Hankige kõik kasutajad ja sorteerige need nime järgi.

Задание 4

Hankige kasutajad, kelle palk on 500 ja sorteerige need vanuse järgi.

Задание 5

Hankige kõik kasutajad ja sorteerige need nime ja palga järgi.

Задание 6

Sorteerige kasutajad palga kasvamise järjekorras ja hankige sorteerimistulemusest esimesed 3 töötajat.

Задание 7

Sorteerige kasutajad palga kahaneva järjekorras ja hankige sorteerimistulemusest esimesed 3 kasutajat.