Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
1-42_44-48.docx
Скачиваний:
653
Добавлен:
24.03.2016
Размер:
2.41 Mб
Скачать

37. Правила выполнения запроса select.

Назначение простого оператора SELECT состоит в выборке и отображении

данных одной таблицы базы данных. Это очень мощный оператор, способный

выполнять действия, эквивалентные операциям реляционной алгебры, таким

как выборка, проекция и объединение.

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

1. Берется таблица, указанная в предложении FROM.

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

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

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

5. Если в запросе имеется предложение ORDER BY, результирующая таблица сортируется.

38. Применение агрегатных функций в запросах.

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

– Какова общая сумма плановых продаж для всех служащих?

– Каковы наибольший и наименьший объемы продаж?

– Сколько служащих перевыполнили план?

– Какова средняя стоимость заказа?

– Какова средняя стоимость заказа в каждом офисе?

– Сколько служащих закреплено за каждым офисом?

В SQL запросы такого типа можно создавать с помощью агрегатных функций.

Агрегатные функции используются подобно именам полей в операторе

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

Агрегатная Функция

Тип исходных данных

Результат

Пример

AVG

Числовой

Среднеарифметическое значение выбранных значений данного поля

SELECT AVG(QUOTA), AVG(SALES)

FROM SLUZHASCHIE

SUM

Числовой

Сумма всех выбранных значений данного поля

SELECT SUM(QUOTA), SUM(SALES)

FROM SLUZHASCHIE

MIN

Числовые, строковые значения, значения даты/ времени

Наименьшее из всех выбранных значений данного поля

SELECT MIN(QUOTA), MAX(QUOTA)

FROM SLUZHASCHIE

MAX

Наибольшее из всех выбранных значений данного поля

COUNT

Любой

Количество строк или непустых значений полей, которые выбрал запрос

SELECT COUNT(ID_CLN)

FROM CLIENTY

39. Правила выполнения запросов, в которых участвуют агрегатные функции.

Таблица результатов запроса, в котором участвуют агрегатные функции,

генерируется следующим образом.

1. Берется таблица, указанная в предложении FROM.

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

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

Смысл запроса, в котором участвуют агрегатные функции, легче понять,

если разбить процесс выполнения на два этапа: сначала представить выполнение запроса без агрегатных функций, а затем представить, как СУБД применяет агрегатные функции к результатам запроса, формируя при этом итоговую строку.

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