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:

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

Rezultat izvršenog koda:

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

Primer

Izabraćemo korisnike sa platom 500 ILI godinama starosti 23:

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

Rezultat izvršenog koda:

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}

Primer

Izabraćemo korisnike sa platom od 450 do 900:

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

Rezultat izvršenog koda:

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}

Primer

Izabraćemo korisnike sa godinama starosti od 23 do 27 godina uključujući:

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

Rezultat izvršenog koda:

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}

Primer

Složene kombinacije komandi OR i AND mogu se grupisati pomoću običnih zagrada, da bi se pokazao prioritet uslova:

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

Rezultat izvršenog koda:

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

Praktični zadaci

Задание 1

Izaberite korisnike u starosti od 25 (ne uključujući) do 28 godina (uključujući).

Задание 2

Izaberite korisnika user1.

Задание 3

Izaberite korisnike user1 i user2.

Задание 4

Izaberite sve, osim korisnika user3.

Задание 5

Izaberite sve korisnike u starosti 27 godina ili sa platom 1000.

Задание 6

Izaberite sve korisnike u starosti 27 godina ili sa platom koja nije jednaka 400.

Задание 7

Izaberite sve korisnike u starosti od 23 godina (uključujući) do 27 godina (ne uključujući) ili sa platom 1000.

Задание 8

Izaberite sve korisnike u starosti od 23 godina do 27 godina ili sa platom od 400 do 1000.