Логичке операције у SQL упиту у Python-у
У услову селекције могу се правити сложеније
комбинације помоћу команди OR и
AND. Оне раде на исти начин као и њихови
аналози у Python конструкцији if.
Погледајмо на примерима.
Пример
Изаберимо кориснике са платом од 500 И
старим 23 године:
query = "SELECT * FROM users WHERE salary=500 AND age=23"
Резултат извршеног кода:
{'id': 3, 'name': 'user3', 'age': 23, 'salary': 500}
Пример
Изаберимо кориснике са платом од 500 ИЛИ
старим 23 године:
query = "SELECT * FROM users WHERE salary=500 OR age=23"
Резултат извршеног кода:
{'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:
query = "SELECT * FROM users WHERE salary>450 AND salary<900"
Резултат извршеног кода:
{'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 година укључиво:
query = "SELECT * FROM users WHERE age>=23 AND age<=27"
Резултат извршеног кода:
{'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 могу се груписати помоћу
заграда, да би се показао приоритет
услова:
query = "SELECT * FROM users WHERE (age<20 AND age>27) OR (salary>300 AND salary<500)"
Резултат извршеног кода:
{'id': 1, 'name': 'user1', 'age': 23, 'salary': 400}
Практични задаци
Изабери кориснике старости од 25
(не укључујући) до 28 година
(укључујући).
Изабери корисника user1.
Изабери кориснике user1 и user2.
Изабери све, осим корисника user3.
Изабери све кориснике старости 27
година или са платом од 1000.
Изабери све кориснике старости 27
година или са платом која није једнака 400.
Изабери све кориснике старости од 23
година (укључујући) до 27 година (не
укључујући) или са платом од 1000.
Изабери све кориснике старости од 23
година до 27 година или са платом од
400 до 1000.