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:

pythonquery = "SELECT * FROM users WHERE salary=500 AND age=23"

Výsledek provedeného kódu:

python{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}

Příklad

Vyberme uživatele s platem 500 NEBO věkem 23 let:

pythonquery = "SELECT * FROM users WHERE salary=500 OR age=23"

Výsledek provedeného kódu:

python{'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:

pythonquery = "SELECT * FROM users WHERE salary>450 AND salary<900"

Výsledek provedeného kódu:

python{'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ě:

pythonquery = "SELECT * FROM users WHERE age>=23 AND age<=27"

Výsledek provedeného kódu:

python{'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:

pythonquery = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"

Výsledek provedeného kódu:

python{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}

Praktické úlohy

Задание 1

Vyberte uživatele ve věku od 25 (nevčetně) do 28 let (včetně).

Задание 2

Vyberte uživatele user1.

Задание 3

Vyberte uživatele user1 a user2.

Задание 4

Vyberte všechny kromě uživatele user3.

Задание 5

Vyberte všechny uživatele ve věku 27 let nebo s platem 1000.

Задание 6

Vyberte všechny uživatele ve věku 27 let nebo s platem nerovnajícím se 400.

Задание 7

Vyberte všechny uživatele ve věku od 23 let (včetně) do 27 let (ne včetně) nebo s platem 1000.

Задание 8

Vyberte všechny uživatele ve věku od 23 let do 27 let nebo s platem od 400 do 1000.