В этом учебном пособии вы узнаете, как использовать вместе условие OR и условие AND в запросе PostgreSQL с синтаксисом и примерами.
Описание
PostgreSQL условия OR и AND можно объединить в операторе SELECT, INSERT, UPDATE или DELETE.
При объединении этих условий важно использовать скобки, чтобы база данных знала, в каком порядке оценивать каждое условие.
Синтаксис
Синтаксис для условий OR и AND в PostgreSQL:
AND condition2
...
OR condition_n;
Параметры или аргументы
condition1, condition2, condition_n - это условия, которые оцениваются, для определения будут ли выбраны записи.
Примечание
- PostgreSQL условия AND и OR позволяют вам протестировать несколько условий.
- Не забудьте порядок операций в скобках!
Пример - с оператором SELECT
Рассмотрим пример, который объединяет условия AND и OR в операторе SELECT.
Например:
1 2 3 4 |
SELECT * FROM employees WHERE (city = 'Samara' AND first_name = 'Olga') OR (employee_id <= 1500); |
Этот пример AND и OR вернет все записи таблицы employees, которые живут в 'Samara', чье first_name равно 'Olga', и чей employee_id меньше или равен 1500. Скобки определяют порядок, в котором оцениваются условия AND и OR.
В следующем примере рассматривается более сложный запрос.
Например:
1 2 3 4 5 |
SELECT employee_id, last_name, first_name FROM employees WHERE (last_name = 'Ivanov') OR (last_name = 'Petrov' AND state = 'Florida') OR (last_name = 'Sidorov' AND status = 'Active' AND state = 'Nevada'); |
В этом примере будут возвращены все значения employee_id, last_name и first_name из таблицы employee, чье last_name - 'Ivanov' ИЛИ, чье last_name - 'Petrov', и state - 'Florida' ИЛИ, чье last_name - 'Sidorov' и status имеет значение 'Active', а state - 'Nevada'.
Пример - с оператором INSERT
Следующий пример демонстрирует, как условия AND и OR могут быть объединены в операторе INSERT.
Например:
1 2 3 4 5 6 |
INSERT INTO contacts (contact_id, contact_name) SELECT customer_id, customer_name FROM customers WHERE (last_name = 'Petrov' OR last_name = 'Ivanov') AND customer_id > 260; |
Этот пример будет вставлять в таблицу contacts все записи customer_id и customer_name из таблицы customers чье last_name равно 'Petrov' или 'Ivanov', а customer_id больше 260.
Пример - с оператором UPDATE
Этот пример показывает, как условия AND и OR могут использоваться в операторе UPDATE.
Например:
1 2 3 4 |
UPDATE employees SET status = 'Active' WHERE (first_name = 'Milana' or last_name = 'Safina') AND employee_id > 9500; |
В этом примере все значения status обновляются до «Active» в таблице employee, где first_name равно 'Milana' или last_name равно 'Safina', а employee_id больше 9500.
Пример - с оператором DELETE
Наконец, последней пример демонстрирует, как можно использовать условия AND и OR в операторе DELETE.
Например:
1 2 3 |
DELETE FROM employees WHERE employee_id >= 500 AND (last_name = 'Ivanov' OR last_name = 'Petrov'); |
В этом примере будут удалены все записи из таблицы employee, где employee_id больше или равно 500, а last_name или 'Ivanov' или last_name = 'Petrov'.