Logičke operacije u SQL upitu u Python-u
U uslovu selekcije mogu se praviti složenije
kombinacije pomoću komandi OR i
AND. One rade na isti način kao i njihovi
analozi u Python konstrukciji if.
Pogledajmo na primerima.
Primer
Izabraćemo korisnike sa platom 500 I
godinama starosti 23:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Rezultat izvršenog koda:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Primer
Izabraćemo korisnike sa platom 500 ILI
godinama starosti 23:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Rezultat izvršenog koda:
{'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}
Primer
Izabraćemo korisnike sa platom od 450
do 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Rezultat izvršenog koda:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Primer
Izabraćemo korisnike sa godinama starosti od 23
do 27 godina uključujući:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Rezultat izvršenog koda:
{'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}
Primer
Složene kombinacije komandi OR i
AND mogu se grupisati pomoću
običnih zagrada, da bi se pokazao prioritet
uslova:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Rezultat izvršenog koda:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Praktični zadaci
Izaberite korisnike u starosti od 25
(ne uključujući) do 28 godina
(uključujući).
Izaberite korisnika user1.
Izaberite korisnike user1 i user2.
Izaberite sve, osim korisnika user3.
Izaberite sve korisnike u starosti 27
godina ili sa platom 1000.
Izaberite sve korisnike u starosti 27
godina ili sa platom koja nije jednaka 400.
Izaberite sve korisnike u starosti od 23
godina (uključujući) do 27 godina (ne
uključujući) ili sa platom 1000.
Izaberite sve korisnike u starosti od 23
godina do 27 godina ili sa platom od
400 do 1000.