7.1. Обзор
Процесс или команда получения данных из базы данных называется запросом. В SQL запросы формулируются с помощью команды SELECT
. В общем виде команда SELECT
записывается так:
[WITHзапросы_with
] SELECTсписок_выборки
FROMтабличное_выражение
[определение_сортировки
]
В следующих разделах подробно описываются список выборки, табличное выражение и определение сортировки. Запросы WITH
являются расширенной возможностью PostgreSQL и будут рассмотрены в последнюю очередь.
Простой запрос выглядит так:
SELECT * FROM table1;
Если предположить, что в базе данных есть таблица table1
, эта команда получит все строки с содержимым всех столбцов из table1
. (Метод выдачи результата определяет клиентское приложение. Например, программа psql выведет на экране ASCII-таблицу, хотя клиентские библиотеки позволяют извлекать отдельные значения из результата запроса.) Здесь список выборки задан как *
, это означает, что запрос должен вернуть все столбцы табличного выражения. В списке выборки можно также указать подмножество доступных столбцов или составить выражения с этими столбцами. Например, если в table1
есть столбцы a
, b
и c
(и возможно, другие), вы можете выполнить следующий запрос:
SELECT a, b + c FROM table1;
(в предположении, что столбцы b
и c
имеют числовой тип данных). Подробнее это описано в Разделе 7.3.
FROM table1
— это простейший тип табличного выражения, в котором просто читается одна таблица. Вообще табличные выражения могут быть сложными конструкциями из базовых таблиц, соединений и подзапросов. А можно и вовсе опустить табличное выражение и использовать команду SELECT
как калькулятор:
SELECT 3 * 4;
В этом может быть больше смысла, когда выражения в списке выборки возвращают меняющиеся результаты. Например, можно вызвать функцию так:
SELECT random();