Loginės operacijos SQL užklausoje Python
Atrankos sąlygoje galima kurti sudėtingesnes
kombinacijas naudojant komandas OR ir
AND. Jos veikia taip pat, kaip ir jų
atitikmenys Python konstrukcijoje if.
Pažiūrėkime pavyzdžiais.
Pavyzdys
Pažymime vartotojus su atlyginimu 500 IR
amžiumi 23 metų:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Vykdytos kodo rezultatas:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Pavyzdys
Pažymime vartotojus su atlyginimu 500 ARBA
amžiumi 23 metų:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Vykdytos 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': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Pavyzdys
Pažymime vartotojus su atlyginimu nuo 450
iki 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Vykdytos kodo rezultatas:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Pavyzdys
Pažymime vartotojus su amžiumi nuo 23
iki 27 metų imtinai:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Vykdytos 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': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Pavyzdys
Sudėtingas OR ir
AND komandų kombinacijas galima grupuoti naudojant
apvalius skliaustus, kad būtų nurodytas sąlygų
prioritetas:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Vykdytos kodo rezultatas:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Praktinės užduotys
Pažymėkite vartotojus, kurių amžius nuo 25
(ne imtinai) iki 28 metų
(imtinai).
Pažymėkite vartotoją user1.
Pažymėkite vartotojus user1 ir user2.
Pažymėkite visus, išskyrus vartotoją user3.
Pažymėkite visus vartotojus, kurių amžius 27
metų arba atlyginimas 1000.
Pažymėkite visus vartotojus, kurių amžius 27
metų arba atlyginimas nelygus 400.
Pažymėkite visus vartotojus, kurių amžius nuo 23
metų (imtinai) iki 27 metų (ne
imtinai) arba atlyginimas 1000.
Pažymėkite visus vartotojus, kurių amžius nuo 23
metų iki 27 metų arba atlyginimas nuo
400 iki 1000.