Razvrstitev zapisov prek SQL poizvedbe v Pythonu
Za razvrščanje vrstic rezultata
je potrebno uporabiti ukaz ORDER
BY.
Primer
Izberimo iz naše tabele users vse
uporabnike in jih razvrstimo po starosti od
manjšega k večjemu:
query = "SELECT * FROM users ORDER BY age"
Rezultat izvedene kode:
{'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}
Primer
Spremenimo vrstni red razvrščanja z uporabo
ukaza DESC:
query = "SELECT * FROM users ORDER BY age DESC"
Rezultat izvedene kode:
{'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}
Primer
Izberimo vse uporabnike s plačo 500
in jih razvrstimo po starosti od manjšega
k večjemu:
query = "SELECT * FROM users WHERE salary=500 ORDER BY age"
Rezultat izvedene kode:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Primer
Lahko razvrščamo ne po enem polju, ampak po več. Za primer izberimo vse uporabnike in jih razvrstimo najprej po naraščanju starosti, uporabnike z enakimi starostmi pa razvrstimo po naraščanju plače:
query = "SELECT * FROM users ORDER BY age, salary"
Rezultat izvedene kode:
{'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}
Primer
Ukaz ORDER BY je mogoče kombinirati
z LIMIT . Pri tem je najprej potrebno
napisati ukaz za razvrščanje, nato - limit.
V naslednjem primeru najprej razvrstimo
zapise po naraščanju starosti, nato
vzamemo prvih 3 kosov:
query = "SELECT * FROM users ORDER BY age LIMIT 3"
Rezultat izvedene kode:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Praktične naloge
Pridobite vse uporabnike in jih razvrstite po naraščanju plače.
Pridobite vse uporabnike in jih razvrstite po padanju plače.
Pridobite vse uporabnike in jih razvrstite po imenu.
Pridobite uporabnike s plačo 500 in
jih razvrstite po starosti.
Pridobite vse uporabnike in jih razvrstite po imenu in po plači.
Razvrstite uporabnike po naraščanju plače
in pridobite prvih 3 delavcev iz
rezultata razvrščanja.
Razvrstite uporabnike po padanju plače
in pridobite prvih 3 uporabnikov iz
rezultata razvrščanja.