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