Įrašų atranka atliekant SQL užklausą Python duomenų bazėje
Testiniame SQL užklausos kode yra komanda
SELECT, atrenkanti duomenis
iš duomenų bazės. Dabar išsamiau panagrinėkime
jos sintaksę. Štai jis:
query = "SELECT * FROM lentelė WHERE sąlyga"
Po lentelės pavadinimo taip pat galima pridėti
komandą WHERE, kurioje nurodoma
sąlyga atrenkamiems įrašams. Joje leidžiamos
šios palyginimo operacijos: =,
!=, <>, <, >,
<=, >=.
Pažvelkime į jų taikymą pavyzdžiuose.
Pavyzdys
Parinksime vartotoją, kurio id
yra lygus 2:
query = "SELECT * FROM users WHERE id=2"
Vykdyto kodo rezultatas:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
Pavyzdys
Parinksime vartotojus, kurių id
yra didesnis už 2:
query = "SELECT * FROM users WHERE id>2"
Vykdyto kodo rezultatas:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Pavyzdys
Parinksime vartotojus, kurių id
yra didesnis arba lygus 2:
query = "SELECT * FROM users WHERE id>=2"
Vykdyto kodo rezultatas:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Pavyzdys
Parinksime vartotojus, kurių id
*nėra* lygus 2:
query = "SELECT * FROM users WHERE id!=2"
Vykdyto kodo rezultatas:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Pavyzdys
Vietoj komandos != galima rašyti
komandą <>:
query = "SELECT * FROM users WHERE id<>2"
Pavyzdys
Parinksime vartotoją vardu 'user1'.
Čia mus laukia svarbus niuansas: kadangi
vardas yra eilutė (string), jį būtinai reikia
įdėti į kabutes:
query = "SELECT * FROM users WHERE name='user1'"
Vykdyto kodo rezultatas:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Pavyzdys
Jei komanda WHERE nėra, tai
bus parinkti visi lentelės įrašai. Parinkime
visus darbuotojus:
query = "SELECT * FROM users"
Vykdyto kodo rezultatas:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 4, 'name': 'user4', 'age': 30, 'salary': 900}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
{'id': 6, 'name': 'user6', 'age': 28, 'salary': 900}
Praktinės užduotys
Parinkite vartotoją, kurio id
yra lygus 3.
Parinkite vartotojus, kurių atlyginimas
yra 900.
Parinkite vartotojus, kurių amžius
yra 23 metai.
Parinkite vartotojus, kurių atlyginimas
didensis už 400.
Parinkite vartotojus, kurių atlyginimas
yra lygus arba didesnis už 500.
Parinkite vartotojus, kurių atlyginimas
*NĖRA* lygus 500.
Parinkite vartotojus, kurių atlyginimas
yra lygus arba mažesnis už 500.