Logické operace v SQL dotazu v Pythonu
V podmínce výběru lze vytvářet složitější
kombinace pomocí příkazů OR a
AND. Fungují stejně jako jejich
analogy v Python konstrukci if.
Podívejme se na příkladech.
Příklad
Vyberme uživatele s platem 500 A
věkem 23 let:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Výsledek provedeného kódu:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Příklad
Vyberme uživatele s platem 500 NEBO
věkem 23 let:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Výsledek provedeného kódu:
{'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}
Příklad
Vyberme uživatele s platem od 450
do 900:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Výsledek provedeného kódu:
{'id': 2, 'name': 'user2', 'age': 25, 'salary': 500}
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
{'id': 5, 'name': 'user5', 'age': 27, 'salary': 500}
Příklad
Vyberme uživatele s věkem od 23
do 27 let včetně:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Výsledek provedeného kódu:
{'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}
Příklad
Složité kombinace příkazů OR a
AND lze seskupovat pomocí
kulatých závorek, aby se ukázala priorita
podmínek:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Výsledek provedeného kódu:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Praktické úlohy
Vyberte uživatele ve věku od 25
(nevčetně) do 28 let
(včetně).
Vyberte uživatele user1.
Vyberte uživatele user1 a user2.
Vyberte všechny kromě uživatele user3.
Vyberte všechny uživatele ve věku 27
let nebo s platem 1000.
Vyberte všechny uživatele ve věku 27
let nebo s platem nerovnajícím se 400.
Vyberte všechny uživatele ve věku od 23
let (včetně) do 27 let (ne
včetně) nebo s platem 1000.
Vyberte všechny uživatele ve věku od 23
let do 27 let nebo s platem od
400 do 1000.