Предложение FROM состоит из ключевого слова from, за которым следует список спецификаторов таблиц, разделенных запятыми. Каждый спецификатор таблицы идентифицирует таблицу, содержащую данные, которые извлекает запрос. Такие таблицы называются исходными таблицами запроса.
Результатом SQL-запроса на выборку всегда является таблица. Если пользователь выполняет инструкцию SQL в интерактивном режиме (запрос-ответ), СУБД выводит результаты запроса на экран в табличной форме. Если программа посылает запрос СУБД с помощью “программного SQL”, то СУБД возвращает таблицу результатов запроса программе. В любом случае результаты запроса всегда имеют такой же формат, как и обычные таблицы, содержащиеся в базе данных, что иллюстрируется на рисунке 5.
Даже в случае если запрос возвращает ноль строк, его результат считается таблицей. В этом случае таблица, содержит некоторое количество столбцов и ноль строк. Поддержка отсутствующих данных в SQL распространяется и на результаты запроса. Если один из элементов данных в исходной таблице имеет значение NULL, то оно попадет в результаты запроса при извлечении этого элемента
То что, SQL-запрос всегда возвращает таблицу, очень важно. Это означает, что результаты запроса можно записать обратно в базу данных в виде таблицы. Это означает также, что результаты двух запросов, имеющие похожую структуру, можно объединить в одну таблицу. И, наконец, это говорит о том, что результаты запроса сами могут стать предметом дальнейших запросов. Таким образом, табличная структура реляционной базы данных тесно связана с реляционными запросами SQL. Таблицам можно посылать запросы, а запросы возвращают таблицы.
Рисунок 5 Табличная структура результатов запроса на выборку
Простые запросы извлекают данные из столбцов, расположенных в одной таблице базы данных. Например, следующий запрос извлекает из таблицы STAFF три столбца:
Вывести для каждого сотрудника имя, фамилию и занимаемую должность:
selectfname, lname, position
fromstaff;
На логическом уровне запрос выполняется путем построчного просмотра таблицы, указанной в предложении FROM. Для каждой строки таблицы берутся значения столбцов, входящих в список возвращаемых столбцов, и создается одна строка результатов запроса. Таким образом, таблица результатов простого запроса на выборку содержит одну строку для каждой строки исходной таблицы базы данных.