В этом учебном пособии вы узнаете, как использовать оператор WHERE в PostgreSQL с синтаксисом и примерами.
Описание
PostgreSQL оператор WHERE используется для фильтрации результатов из оператора SELECT, INSERT, UPDATE или DELETE.
Синтаксис
Синтаксис для оператора WHERE в PostgreSQL:
Параметры или аргументы
- conditions
- Условия, которые должны быть выполнены для выбора записей.
Пример - с одним условием
Сложно объяснить синтаксис PostgreSQL оператора WHERE, поэтому рассмотрим несколько примеров.
1 2 3 |
SELECT * FROM employees WHERE first_name = 'Frosya'; |
В этом примере мы использовали оператор WHERE для фильтрации наших результатов из таблицы employee. Приведенный выше оператор SELECT возвращает все строки из таблицы employee, где first_name равно 'Frosya'. Поскольку в SELECT используется *, то все поля из таблицы employee появятся в результирующем наборе.
Пример - использование условия AND
1 2 3 4 |
SELECT * FROM employees WHERE last_name = 'Anderson' AND employee_id <= 400; |
Этот пример использует оператор WHERE для определения нескольких условий. В этом случае оператор SELECT использует условие AND, чтобы вернуть все строки из employees, чье last_name равно 'Anderson', и чье employee_id меньше или равно 400.
Пример - использование условия OR
1 2 3 4 |
SELECT product_name FROM products WHERE product_type = 'Hardware' OR product_type = 'Software'; |
Этот пример использует оператор WHERE для определения нескольких условий, но вместо использования условия AND он использует условие OR. В этом случае этот оператор SELECT будет возвращать все значения product_name, где product_type имеет значение 'Hardware' или 'Software'.
Пример - объединения условий AND и OR
1 2 3 4 |
SELECT * FROM employees WHERE (last_name = 'Abramov' AND first_name = 'Petr') OR (employee_id >= 699); |
Этот пример использует оператор WHERE для определения нескольких условий, но в нем сочетаются AND условие и OR условие. В этом примере возвращаются все employees, у которых last_name - 'Abramov', а first_name - 'Petr', а также все записи из employees, чей employee_id больше или равно 699.
Скобки определяют порядок оценки условий AND и OR.
Пример - соединение таблиц
1 2 3 4 5 |
SELECT products.product_name, inventory.quantity FROM products INNER JOIN inventory ON products.product_id = inventory.product_id WHERE products.product_type = 'Hardware'; |
Этот пример использует оператор WHERE для соединения нескольких таблиц в один оператор SELECT. Этот оператор SELECT будет возвращать все значения product_name и quantity, если в таблицах products и inventory есть соответствующая запись на основе product_id и где product_type имеет значение 'Hardware'.