- •Практическая работа
- •Создание запроса
- •Что такое запрос?
- •Команда select
- •Выбирайте всегда самый простой способ
- •Просмотр только определенного столбца таблицы
- •Переупорядочение столбца
- •Удаление избыточных данных
- •Квалифицированный выбор при использовании предложений
- •Реляционные операторы
- •Булевы операторы
- •Оператор in
- •Оператор between
- •Оператор like
- •Null оператор
- •Использование not со специальными операторами
- •Практическая часть.
- •Контрольные вопросы
- •Практическая работа
- •Теоретическая часть Что такое агрегатные функции?
- •Как использовать агрегатные функции?
- •Специальные атрибуты count
- •Использование count со строками, а не значениями
- •Включение дубликатов
- •Агрегаты построенные на скалярном выражении
- •Предложение group by
- •Предложение having
- •Не делайте вложенных агрегатов
- •Формирование выводов запросов Скалярное выражение с помощью выбранных полей
- •Помещение текста в вашем выводе запроса
- •Упорядочение вывода полей
- •Упорядочение с помощью многочисленных столбцов
- •Упорядочение агрегатных групп
- •Упорядочение с помощью оператора null
- •Запрашивание многочисленных таблиц также как одной Объединение таблиц
- •Имена таблиц и столбцов
- •Создание объединения
- •Объединение таблиц через справочную целостность
- •Объединения таблиц по равенству значений в столбцах и другие виды объединений
- •Объединение более двух таблиц
- •Практическая часть
- •Контрольные вопросы:
- •Практическая работа
- •Теоретическая часть Объединение таблицы с собой Как делать объединение таблицы с собой?
- •Псевдонимы
- •Устранение избыточности
- •Проверка ошибок
- •Больше псевдонимов
- •Еще больше комплексных объединений
- •Вставка одного запроса внутрь другого Как работает подзапрос?
- •Значения, которые могут выдавать подзапросы
- •Distinct с подзапросами
- •Предикаты с подзапросами являются необратимыми
- •Использование агрегатных функций в подзапросах
- •Использование подзапросов которые выдают много строк с помощью оператора in
- •Подзапросы выбирают одиночные столбцы
- •Использование выражений в подзапросах
- •Подзапросы в предложении having
- •Практическая часть
- •Контрольные вопросы:
- •Практическая работа
- •Теоретическая и практическая часть Использование оператора exists
- •Как работает exists?
- •Выбор столбцов с помощью exists
- •Комбинация из exists и объединения
- •Использование not exists
- •Exists и агрегаты
- •Более удачный пример подзапроса
- •Использование операторов any, all, и some
- •Специальные операторы any или some
- •Использование операторов in или exists вместо оператора any
- •Как any может стать неоднозначным
- •Специальный оператор all
- •Равенства и неравенства
- •Правильное понимание any и all
- •Как any, all, и exist поступают с отсутствующими и неизвестными данными
- •Когда подзапрос возвращается пустым
- •Any и all вместо exists с пустым указателем (null)
- •Использование count вместо exists
- •Использование предложения union Объединение многочисленных запросов в один
- •Когда вы можете делать объединение между запросами ?
- •Union и устранение дубликатов
- •Использование строк и выражений с union
- •Использование union с order by
- •Внешнее объединение
- •Практическая часть
- •Контрольные вопросы:
- •Литература
Практическая работа
Тема: Запросы SQL(2часть)
Цель: Изучение тем:
Агрегатные функции
Формирование выводов запросов
Запрашивание многочисленных таблиц также как одной
Оборудование и/или программное обеспечение:IBM PC, MS Access /OpenOfficedBase.
Теоретическая часть Что такое агрегатные функции?
Запросы могут производить обобщенное групповое значение полей точно также как и значение одного поля. Это делает с помощью агрегатных функций. Агрегатные функции производят одиночное значение для всей группы таблицы. Имеется список этих функций:
COUNT
производит номера строк или не-NULL значения полей которые выбрал запрос.
SUM
производит арифметическую сумму всех выбранных значений данного поля.
AVG
производит усреднение всех выбранных значений данного поля.
MAX
производит наибольшее из всех выбранных значений данного поля.
MIN
производит наименьшее из всех выбранных значений данного поля.
Как использовать агрегатные функции?
Агрегатные функции используются подобно именам полей в предложении SELECT запроса, но с одним исключением, они берут имена поля как аргументы. Только числовые поля могут использоваться с SUM и AVG.
С COUNT, MAX, и MIN, могут использоваться и числовые или символьные поля. Когда они используются с символьными полями, что MIN будет означать первое, а MAX последнее значение в алфавитном порядке.
Чтобы найти SUM всех наших покупок в таблицы Продажы, мы можем ввести следующий запрос, с его выводом в Рисунке 1:
SELECT SUM (amt)
FROM Orders;
Рисунок 1 Выбор суммы
Как видно из рисунка столбец не имеет названия (Expr1000). Для того, чтобы столбец назывался например «Обшая_сумма», то запрос должен иметь вид:
SELECT Sum([amt]) AS Общая_сумма
FROM Orders;
Обращаю ваше внимание, что название столбца написано без пробела, если необходимо писать с пробелом, то запрос будет выглядеть:
SELECT Sum([amt]) AS [Общая сумма]
FROM Orders;
Рисунок 2 Выбор суммы и переименование столбца
Нахождение усредненной суммы - это похожая операция (вывод следующего запроса показывается в Рисунке 2):
SELECT AVG (amt)
FROM Orders;
Рисунок 3 Выбор среднего
Специальные атрибуты count
Функция COUNT несколько отличается от всех. Она считает число значений в данном столбце, или число строк в таблице. Когда она считает значения столбца, она используется с DISTINCT чтобы производить счет чисел различных значений в данном поле. Мы могли бы использовать ее, например, чтобы сосчитать номера продавцов в настоящее время описанных в таблице Продажи:
SELECT Count (snum)
FROM (SELECT DISTINCT snum
FROM Orders)
Рисунок 4 Подсчет значений поля
Нужно отметить, что DISTINCT и COUNT не считает Null значения (т.е. пустые строки).
DISTINCT может использоваться таким образом, с любой функцией агрегата, но наиболее часто он используется с COUNT. С MAX и MIN, это просто не будет иметь никакого эффекта, а SUM и AVG, вы обычно применяете для включения повторяемых значений, так как они законно эффективнее общих и средних значений всех столбцов.
Использование count со строками, а не значениями
Чтобы подсчитать общее число строк в таблице, используйте функцию COUNT со звездочкой вместо имени поля, как например в следующем примере, вывод из которого показан на Рисунке 5:
SELECT COUNT (*)
FROM Customers;
COUNT со звездочкой включает NULL и дубликаты.
Рисунок 5 Подсчет строк вместо значений
