АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗pyPmDBLO 105 of 129 menu
Бесплатная Тренировка Верстки. Приглашаются желающие поверстать!

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

enru