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

Count – возвращает количество строк, удовлетворяющих условию поиска

COUNT ( * | [DISTINCT] имя_столбца)

Считает количество строк, получаемых оператором SELECT. DISTINCT игнорирует дублирующиеся значения указанного столбца при подсчете строк.

MAX – возвращает наибольшее значение в указанном столбце

MAX (имя_столбца)

Находит наибольшее значение в столбце из выборки. При вычислении учитываются нулевые значения столбца. Если число строк, подходящих под условия поиска, равно нулю, MAX возвращает нулевое значение.

MIN – возвращает наименьшее значение в указанном столбце

MIN (имя_столбца)

Находит наименьшее значение в столбце из выборки. При вычислении учитываются нулевые значения столбца. Если число строк, подходящих под условия поиска, равно нулю, MIN возвращает нулевое значение.

SUM – считает сумму значений в столбце

SUM ([DISTINCT] имя_столбца)

Вычисляет сумму значений в столбце из выборки. Если число строк, подходящих под условия поиска, равно нулю, SUM возвращает нулевое значение. DISTINCT игнорирует дублирующиеся значения указанного столбца при суммировании.

Предложение FROM

Предложение FROM указывает имена исходных таблиц для запроса. Эти таблицы могут быть таблицами или представлениями, непосредственно поименованными, или они могут быть получены в результате подзапроса или явно заданного соединения. "Имена корреляции" (этот термин принят для переменных области или псевдонимов), входящие в предложение FROM, обеспечивают использование альтернативных имен для таблиц. Имя корреляции записывается после имени таблицы, и ею определение действует только в течение исполнения оператора, Эти имена не обязательны для базовых таблиц и представлений, но необходимы при работе с таблицами, которые являются результатом подзапроса. Имена корреляции могут применяться для устранения неоднозначностей в используемых в предложении столбцах, в этом случае "имя корреляции" заменяет имя таблицы. Допускается, например, использование соединения таблицы с самой собой, которое будет обрабатываться как соединение двух идентичных таблиц. В лом случае необходимо использовать имя корреляции (псевдоним), чтобы различать две соединяемые копии. Имена корреляции выступают в роли префиксов к именам столбцов и, как обычно, отделяются от имени с помощью точки. Фактически, это переименование столбцов, используемых в предложении SELECT. Однако такие имена используются не для выходных столбцов, а для столбцов, на которые имеется ссылка в оставшейся части оператора, в частности, в предложении WHERE. Имена корреляции не относятся к обязательным элементам и используются только в некоторых случаях для более понятной записи оператора.

Соединения

Когда в предложении FROM поименованы несколько таблиц, то все они неявно считаются соединяемыми. По сути это означает, что можно получить все возможные комбинации строк (по одной из каждой таблицы), и именно с такой конкатенацией будут работать остальные операторы запроса. Эта конкатенированная таблица носит название декартово произведение (Cartesian product) или перекрестное соединение (cross join). Чаше всего пользователю нужно исключить большинство строк и выделить определенные данные, что обычно реализуется посредством установления отношений (или условий) при помощи предложения WHERE. Другой способ установить отношения - использование встроенных операций соединения, чтобы осуществить внутреннее соединение в предложении FROM. Результат этою соединения есть порожденная таблица, которая и должна обрабатываться остальными операторами запроса. Можно использовать оба способа совместно, однако, чаше всего сложности в "запутанной" логике исполнения оператора намного превышают полученные преимущества. В предыдущем стандарте встроенные операции соединения не поддерживались, поэтому те, кто уже постиг искусство соединения таблиц "вручную", возможно, обнаружат, что удобнее использовать новый способ, так как для любых групп стандартных операций встроенные соединения реализовать намного проще.

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

перекрестное соединение ::=

таблица A CROSS JOIN таблица В

естественное соединение ::=

таблица A [NATURAL] [тип соединения] JOIN таблица В

соединение объединения ::=

таблица A UNION JOIN таблица В

объединение посредством предиката ::=

таблица А [тип соединения] JOIN таблица В ON предикат

объединение посредством имен столбцов ::=

таблица А [тип соединения] JOIN таблица В USING (имя столбца.,..)

тип соединения ::=

INNER

| { { LEFT | RIGHT | FULL | [OUTER] }

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