Логичке операције у SQL упиту у Python-у

У услову селекције могу се правити сложеније комбинације помоћу команди OR и AND. Оне раде на исти начин као и њихови аналози у Python конструкцији if. Погледајмо на примерима.

Пример

Изаберимо кориснике са платом од 500 И старим 23 године:

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

Резултат извршеног кода:

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

Пример

Изаберимо кориснике са платом од 500 ИЛИ старим 23 године:

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

Резултат извршеног кода:

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}

Пример

Изаберимо кориснике са платом од 450 до 900:

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

Резултат извршеног кода:

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}

Пример

Изаберимо кориснике старе од 23 до 27 година укључиво:

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

Резултат извршеног кода:

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}

Пример

Сложене комбинације команди OR и AND могу се груписати помоћу заграда, да би се показао приоритет услова:

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

Резултат извршеног кода:

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

Практични задаци

Задание 1

Изабери кориснике старости од 25 (не укључујући) до 28 година (укључујући).

Задание 2

Изабери корисника user1.

Задание 3

Изабери кориснике user1 и user2.

Задание 4

Изабери све, осим корисника user3.

Задание 5

Изабери све кориснике старости 27 година или са платом од 1000.

Задание 6

Изабери све кориснике старости 27 година или са платом која није једнака 400.

Задание 7

Изабери све кориснике старости од 23 година (укључујући) до 27 година (не укључујући) или са платом од 1000.

Задание 8

Изабери све кориснике старости од 23 година до 27 година или са платом од 400 до 1000.