PostgreSQL оператор SELECT

В этом учебном пособии вы узнаете, как использовать в PostgreSQL оператор SELECT с синтаксисом и примерами.

Описание

Оператор PostgreSQL SELECT используется для извлечения записей из одной или нескольких таблиц в PostgreSQL.

Синтаксис

В своей простейшей форме синтаксис для оператора SELECT в PostgreSQL:

SELECT expressions
FROM tables
[WHERE conditions];

Тем не менее, полный синтаксис для оператора SELECT PostgreSQL:

SELECT [ ALL | DISTINCT | DISTINCT ON (distinct_expressions) ]
expressions
FROM tables
[WHERE conditions]
[GROUP BY expressions]
[HAVING condition]
[ORDER BY expression [ ASC | DESC | USING operator ] [ NULLS FIRST | NULLS LAST ]]
[LIMIT [ number_rows | ALL]
[OFFSET offset_value [ ROW | ROWS ]]
[FETCH { FIRST | NEXT } [ fetch_rows ] { ROW | ROWS } ONLY]
[FOR { UPDATE | SHARE } OF table [ NOWAIT ]];

Параметры или аргументы

ALL
Необязательный. Возвращает все совпадающие строки.
DISTINCT
Необязательный. Удаляет дубликаты из набора результатов. Узнайте больше об операторе DISTINCT.
DISTINCT ON
Необязательный. Удаляет дубликаты на основе different_expressions. Подробнее об операторе DISTINCT ON.
expressions
Столбцы или расчеты, которые вы хотите получить. Используйте *, если хотите выбрать все столбцы.
tables
Таблицы, из которых вы хотите получить записи. В операторе FROM должна быть указана хотя бы одна таблица.
WHERE conditions
Необязательный. Условия, которые должны быть выполнены для записей, которые будут выбраны.
GROUP BY expressions
Необязательный. Он собирает данные по нескольким записям и группирует результаты по одному или нескольким столбцам.
HAVING condtion
Необязательный. Он используется в сочетании с GROUP BY, чтобы ограничить группы возвращаемых строк только теми, чье условие TRUE.
ORDER BY expression
Необязательный. Он используется для сортировки записей в вашем результирующем наборе.
LIMIT
Необязательный. Если указан LIMIT, он контролирует максимальное количество записей для извлечения. Максимум, количество записей, указанное number_rows, будет возвращено в результирующем наборе. Первая строка, возвращаемая LIMIT, будет определена offset_value.
FETCH
Необязательный. Если указан FETCH, он контролирует максимальное количество записей для извлечения. Самое большее, количество записей, указанное fetch_rows, будет возвращено в результирующем наборе. Первая строка, возвращаемая FETCH, будет определена offset_value.
FOR UPDATE
Необязательный. Записи, затронутые запросом, блокируются от записи до завершения транзакции
FOR SHARE
Необязательный. Записи, затронутые запросом, могут использоваться другими транзакциями, но не могут быть обновлены или удалены этими другими транзакциями

Пример - выбрать все поля из одной таблицы

Рассмотрим, как использовать PostgreSQL запрос SELECT для выбора всех полей в таблице.

В этом примере оператора SELECT PostgreSQL мы использовали *, чтобы указать, что мы хотим выбрать все поля из таблицы categories, где category_id больше или равен 2500. Результирующий набор сортируется по category_id в порядке возрастания.

Пример - выбор отдельных полей из одной таблицы

Вы также можете использовать PostgreSQL оператор SELECT для выбора отдельных полей из таблицы, в отличие от всех полей из таблицы.
Например:

Этот PostgreSQL пример SELECT будет возвращать только поля category_id, category_name и comments из таблицы categories, где category_name - это 'Hardware'. Результаты сортируются по category_name в порядке возрастания, а затем по comments в порядке убывания.

Пример - выбор полей из нескольких таблиц

Вы также можете использовать SELECT оператор PostgreSQL для извлечения полей из нескольких таблиц.

Этот пример PostgreSQL SELECT соединяет две таблицы, чтобы получить результирующий набор, который отображает поля product_name и category_name, где значение category_id совпадает в обоих таблицах categories и products. Результаты сортируются по product_name в порядке возрастания.