Лагічныя аперацыі ў 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.