Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SQL97-4E.DOC
Скачиваний:
3
Добавлен:
05.11.2018
Размер:
3.3 Mб
Скачать

4. Формирование запросов

Основной операцией, используемой при разработке приложений, является запрос на выборку из БД требуемых данных. Результатом запроса всегда является таблица определенной в запросе структуры, которая содержит требуемые данные. Для формирования таких запросов служит команда SELECT, которая является ключевой в языке SQL. Команда SELECT имеет следующую структуру:

SELECT [ DISTINCT | ALL ] * | <список полей(выражений)>

FROM <имя таблицы>[ <алиас>] [, ... ]

[ WHERE <условие отбора> ]

[ GROUP BY <имя поля> | <целое число> [, ... ]

[ HAVING <условие отбора> ] ]

[ ORDER BY <имя поля> | <целое число>

[ DESC | ASC ] [, ... ] ]

В определении команды используются следующие элементы:

<список полей> - перечень полей (имен столбцов таблицы), значения которых должны отображаться в результирующей таблице. Поля могут принадлежать разным исходным таблицам. В качестве полей в ряде случаев могут указываться выражения;

<имя таблицы> - имя, присвоенное реляционной таблице, из которой извлекаются данные. Чаще всего это имя файла БД, содержащего таблицу;

<алиас> - временное имя (синоним) таблицы, используемое для ссылок на нее в данной команде SELECT;

<условие> - некоторое логическое выражение;

<имя поля> - имя поля (столбца) одной из исходных таблиц;

<целое число> - натуральное число, определяющее номер столбца в результирующей таблице;

, ... - признак повторяющейся конструкции.

| - логическое “или”, определяет возможность использования разных конструкций.

Предложение SELECT определяет, какие колонки должна иметь результирующая таблица. Использование вместо списка полей символа “*” означает, что в результирующую таблицу будут включены все столбцы всех исходных таблиц, на основе которых строится запрос.

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

Наличие ключевого слова DISTINCT в команде SELECT устанавливает, что в результирующей таблице не должно быть идентичных строк. Если такие могут появиться, то они включаются в единственном числе. При указании ALL и по умолчанию в результирующую таблицу будут включены все строки.

Предложение FROM определяет список таблиц, на основе которых строится запрос. Через пробел от имен таблиц могут быть указаны их временные имена (алиасы), после чего на соответствующие таблицы можно ссылаться по их алиасам.

Предложение WHERE позволяет определить условие, которому должна удовлетворять каждая строка результирующей таблицы.

Предложение GROUP BY позволяет определить список полей результирующей таблицы, по которым будет выполняться группировка строк. Это значит, что строки с одинаковыми значениями указанных полей будут представлены в результирующей таблице одной строкой, независимо от того, сколько строк, удовлетворяющих другим условиям, могло быть включено в результирующую таблицу без группировки.

Предложение HAVING действует по отношению к группе и позволяет отобрать из множества сгруппированных строк только те, которые удовлетворяют заданному условию (например, число строк в группе должно быть не меньше некоторого минимального значения).

Предложение ORDER BY определяет порядок строк в результирующей таблице (согласно заданному условию).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]