Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
BD_KURS_WIN / Оператор SELECT.doc
Скачиваний:
30
Добавлен:
10.04.2015
Размер:
69.12 Кб
Скачать

Select Извлекает строки из одной или нескольких таблиц

Список обозначений:

  • Символ "::=" означает равенство по определению

  • Необязательные элементы в квадратных скобках "[ ]"

  • Фигурные скобки "{ }" означают, что все находящееся внутри является единым целым

  • Круглые скобки "( )" являются литералами и используются при формировании оператора

  • Вертикальная черта " | " указывает на то, что все предшествующие ей элементы необязательны и любой из них может быть заменен на другой, принадлежащий списку после этой черты

  • Многоточие "..." - предшествующая часть оператора может быть повторена любое количество раз

  • “,…” - предшествующая часть оператора, состоящая из нескольких элементов, может быть повторена любое количество раз

Синтаксис select [distinct]

{ { функция агрегирования | выражение [AS имя столбца] },... }

| { спецификатор.* }

| *

FROM { { имя таблицы [AS] [имя корреляции] [(имя столбца,...)] }

| { подзапрос [AS] имя корреляции [имя столбца,…] }

| соединенная таблица },...

[ WHERE предикат ]

[ GROUP BY { { [имя таблицы | имя корреляции }.] имя столбца },... ]

[ HAVING предикат]

[ { UNION | INTERSECT | EXCEPT } [ALL]

[ CORRESPONDING [ BY ( имя столбца,...) ] ]

оператор select | {TABLE имя таблицы } | конструктор значений таблицы]

[ ORDER BY { { столбец-результат [ASC | DESC] },...}

| { { положительное целое [ASC | DESC] },...}

Использование

Данный оператор используется для формирования запроса и получения информации из базы данных. Исполнитель запроса должен обладать привилегией SELECT для всех таблиц, к которым осуществляется доступ. Запросы могут быть отдельными операторами или быть частью определения представления или курсора. Любой из запросов можно применять в качестве ползапроса, чтобы получить значения, которые впоследствии будут использованы другими операторами, включая сам оператор SELECT. Иногда подзапрос выполняется отдельно для каждой строки, обрабатываемой внешним запросом, при этом значения из этой внешней строки будут использоваться в подзапросе. Запросы этого этапа называются зависимыми (correlated, коррелированными) подзапросами.

Результат запроса представляет собой таблицу, столбцы которой определяются предложением SELECT как столбцы-результаты. Предложение FROM определяет одну или несколько таблиц, из которых извлекаются данные. Источником данных могут служить временные или постоянные базовые таблицы, представления или выходные данные подзапросов, а также другие операции с данными, результатом которых является таблица. В предложении WHERE определяются критерии, которым должны удовлетворять строки, чтобы их можно было использовать для получения результата. Предложение GROUP BY группирует выходные данные по одинаковым значениям указанных столбцов. При использовании GROUP BY в предложении SELECT могут быть указаны только те столбцы, которые поименованы в фразе GROUP BY, и любые агрегатные функции. Предложение GROUP BY применяется для выполнения агрегатных функций над группами строк, которые имеют одинаковые значения в указанных столбцах. Если GROUP BY отсутствует, то агрегатные функции либо не используются вообще, либо используются для всех выходных столбцов. Если все столбцы используют агрегатные функции, то все строки, удовлетворяющие предложению WHERE, или все строки, извлекаемые предложением FROM {если WHERE не задано), рассматриваются как одна группа для получения агрегатных (групповых) значений. Предложение HAVING определяет критерии, которым должны удовлетворять группы строк, формируемые предложением GROUP BY, чтобы их можно было поместить в выходные данные с помощью запроса. Операции UNION INTERSECT и EXCEPT применяются для объединения выходных данных нескольких запросов. Далее они будут описаны подробнее. С помощью предложения ORDER BY можно расположить результаты одного или нескольких запросов в определенном порядке.

Список, приведенный ниже, определяет последовательность обработки предложений в операторе SELECT:

  1. FROM

  2. WHERE

  3. GROUP BY

  4. HAVING

  5. SELECT

  6. {UNION или EXCEPT}

  7. INTERSECT

  8. ORDER BY

Каждое предложение описано далее в отдельном подразделе в соответствии с порядком, определенным в синтаксической структуре оператора.

Соседние файлы в папке BD_KURS_WIN