Логически операции в 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.