Процесс извлечения или команда извлечения данных из базы данных называется запросом . В SQL SELECTкоманда используется для указания запросов. Общий синтаксис SELECTкоманды такой

[WITH with_queries] SELECT select_list FROM table_expression [sort_specification]

В следующих разделах описываются подробности списка выбора, табличного выражения и спецификации сортировки. WITHзапросы обрабатываются в последнюю очередь, поскольку они являются расширенной функцией.

Простой вид запроса имеет вид:

SELECT * FROM table1;

Если предположить, что существует таблица с именем table1, эта команда извлечет все строки и все пользовательские столбцы из table1. (Метод извлечения зависит от клиентского приложения. Например, программа psql отобразит на экране таблицу с ASCII-графикой, а клиентские библиотеки предложат функции для извлечения отдельных значений из результата запроса.) Спецификация списка выбора *означает все столбцы, которые предоставляет табличное выражение. Список выбора также может выбирать подмножество доступных столбцов или выполнять вычисления с использованием столбцов. Например, если table1есть столбцы с именами a, bи c(и, возможно, другие), вы можете сделать следующий запрос:

SELECT a, b + c FROM table1;

(при условии, что bи cимеют числовой тип данных).

FROM table1представляет собой простое табличное выражение: оно считывает только одну таблицу. В общем, табличные выражения могут быть сложными конструкциями базовых таблиц, объединений и подзапросов. Но вы также можете полностью опустить табличное выражение и использовать SELECTкоманду как калькулятор:

SELECT 3 * 4;

Это более полезно, если выражения в списке выбора возвращают различные результаты. Например, вы можете вызвать функцию следующим образом:

SELECT random();