Инструкция SELECT извлекает информацию из базы данных и возвращает её в виде таблицы результатов запроса. Для демонстрации примеров задания инструкции предположим существование небольшой базы данных пригодной для удовлетворения информационных нужд некоторого малого предприятия, занимающегося сдачей в аренду недвижимости. Реляционная схема данной базы приведена в приложении 1.
На рисунке 4 приведена синтаксическая диаграмма инструкции select. Инструкция состоит из шести предложений. Предложения select и from являются обязательными. Четыре остальных включаются в инструкцию только при необходимости. Ниже перечислены функции каждого из предложений.
В предложении select указывается список столбцов, которые должны быть возвращены инструкцией select. Возвращаемые столбцы могут содержать значения, извлекаемые из столбцов таблиц базы данных, или значения, вычисляемые во время выполнения запроса.
В предложении from указывается список таблиц, которые содержат элементы данных, извлекаемые запросом.
Предложение where показывает, что в результаты запроса следует включать только некоторые строки. Для отбора строк, включаемых в результаты запроса, используется условие отбора. Основные возможности этого предложения описаны ниже. Способы использования подчиненных запросов в предложении where рассматриваются в разделе “Подзапросы”.
Предложение group by позволяет создать итоговый запрос. Обычный запрос включает в результаты запроса по одной записи для каждой строки из таблицы. Итоговый запрос, напротив, вначале группирует строки базы данных по определенному признаку, а затем включает в результаты запроса одну итоговую строку для каждой группы.
Предложение having показывает, что в результаты запроса следует включать только некоторые из групп, созданных с помощью предложения group by. В этом предложении, как и в предложении where, для отбора включаемых групп используется условие отбора.
Предложение order by сортирует результаты запроса на основании данных, содержащихся в одном или нескольких столбцах. Если это предложение не указано, результаты запроса не будут отсортированы.