Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Otvety_k_ekzamenu_TBD.doc
Скачиваний:
10
Добавлен:
23.09.2019
Размер:
958.98 Кб
Скачать

24.Основы sql. Формат оператора select. Использование предложения where для задания условия отбора и внутреннего соединения таблиц.

Оператор SELECT позволяет производить выборки из ТБД и преобразовывать к нужному виду полученные результаты. Общий формат:

SELECT [DISTINCT | ALL ] {* | <значение1> [,<значение2> …]}

FROM <таблица1> [ , <таблица2> … ]

[ WHERE <условия_поиска> ]

[ GROUP BY столбец [, столбец1 … ]

[ HAVING < условия_поиска> ]

[ UNION <оператор_select>]

[ PLAN <план_выполнения_запроса>]

[ ORDER BY <список_столбцов>]

Простейший формат:

SELECT { * | <значение1>, <значение1> [,<значение2> …]}

FROM <таблица1> [ , <таблица2 … ]

Предложение WHERE используется для включения в НД лишь нужных записей.

Внутреннее соединение таблиц

При сравнении значения одной таблицы с со значением столбца другой таблицы условие поиска имеет следующий вид: <условия поиска > = <имя столбца 1> <оператор> <имя столбца 2>

Внутреннее соединение таблиц

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

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

    2. Из получившегося НД отбрасываются все записи , не удовлетворяющие условию в предложении WHERE.

Замечание:

Фактический порядок выполнения запроса для конкретного SQL-сервера может быть другим.

Внутреннее соединение таблиц

25.Основы sql. Формат оператора select. Использование псевдонимов таблиц. Определение сортировки. Устранение повторяющихся значений. Расчет значений вычисляемых столбцов.

Использование псевдонимов таблиц

SELECT …

FROM < таблица1 псевдоним1> [, таблица2 псевдоним 2 … ]

WHERE … Предложение ORDER BY – определение сортировки

Результирующий набор данных можно отсортировать с помощью предложения:

ORDER BY <список_столбцов>

Устранение повторяющихся значений.Часто в результирующий НД необходимо включать не все записи с одинаковым значением комбинации столбцов. Для этого используется ключевое слово

DISTINCT

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

Для расчета значений вычисляемых столбцов результирующего НД используются арифметические выражения. При этом в списке возвращаемых столбцов после SELECT вместо имени вычисляемого столбца указывается выражение:

SELECT [DISTINCT | ALL ]

{ * | <значение1> [,<значение2> …], <выражение1>[AS <имя_столбца>] …}

FROM <таблица1> [ , <таблица2> … ]

AS STOIM – необязательное присвоение имени вычисляемому столбцу

26.Основы sql. Формат оператора select. Агрегатные функции. Группировка записей. Наложение ограничений на группировку записей.

Агрегатные функции предназначены для вычисления итоговых значений операций над всеми записями НД. К агрегатным относятся следующие функции:

  • COUNT(<выражение>) – число вхождений выражения в результирующий НД;

  • SUM(<выражение>) – суммирует значение выражения;

  • AVG(<выражение>) – находит среднее значение;

  • MAX(<выражение>) – определяет максимальное значение;

  • MIN(<выражение>)- определяет минимальное значение.

Группировка записей. Иногда требуется получить агрегированные значения не по всему результирующему НД, а по каждой из входящих в него групп записей, характеризующихся одинаковым значением какого-либо столбца. Для этого перед предложением WHERE вводится предложение: GROUP BY столбец [ , столбец1 … ]

Наложение ограничений на группировку записей

Если нужно в результирующем НД выдавать агрегацию не по всем группам, а только по группам, которые отвечают некоторому условию то после GROUP BY указывается предложение :

HAVING <агрегатная функция> <отношение> <значение>

  • Агрегатная функция – одна из функций MIN, MAX, AVG, SUM

  • Отношение – одна из операций отношения.

  • Значение – константа, результат вычисления выражения или единичное значение, возвращаемое вложенным оператором SELECT.

Отличие HAVING от WHERE:

  • HAVING – исключает из результирующего НД группы с результатами агрегированных значений;

  • WHERE – исключает из расчета агрегатных значений по группировкам записи, не удовлетворяющие условию;

  • В условии поиска WHERE нельзя указывать агрегатную функцию.

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