- •Базы данных
- •Литература
- •1. Введение в базы данных
- •1.1. Данные, информация, знания
- •1.2. Банки и базы данных (основные компоненты и понятия)
- •1.3. Архитектура информационной системы клиент-сервер
- •1.4. Классификация и основные функции субд
- •1.5. Обмен данными при работе с бд в локальной ис
- •2. Модели и типы данных
- •2.1. Иерархическая модель
- •2.2. Сетевая модель
- •2.3. Реляционная модель
- •2.4. Типы данных в субд
- •3. Реляционная модель данных
- •3.1. Определение реляционной модели
- •3.2. Связывание таблиц; основные виды связи
- •3.3. Связь таблиц вида 1:1
- •3.4. Связь таблиц вида 1:м
- •3.5. Связь таблиц вида м:1
- •3.6. Связь таблиц вида м:м
- •3.7. Контроль целостности связей
- •3.8. Введение в язык запросов qbe
- •3.9. Основные объекты субд ms Access
- •3.10. Общая характеристика языка qbe субд ms Access
- •3.11. Построение условий в запросах на выборку в субд ms Access
- •3.12. Запросы на выборку в субд ms Access (вычисления по горизонтали и вертикали, группирование записей)
- •3.13. Структурированный язык запросов sql (общая характеристика, инструкции)
- •3.14. Структурированный язык запросов sql (имена, типы данных, встроенные функции)
- •3.15. Язык sql: команда создания таблицы (create table)
- •Описание столбцов
- •Пример создания таблицы
- •3.16. Язык sql: команда извлечения данных (select) и отдельные разделы этой команда
- •3.17. Примеры использования команды select
3.12. Запросы на выборку в субд ms Access (вычисления по горизонтали и вертикали, группирование записей)
Наиболее важными дополнительными возможностями запросов на выборку являются:
• расширение списка полей (вычисления по горизонтали);
• группирование записей;
• вычисления по вертикали.
Расширение списка полей (или просто расширение) - это специальная операция, позволяющая добавить к списку полей запроса любое поле, которого нет в таблицах-источниках запроса. В общем случае это поле должно представлять собой любое выражение, построенное с использованием встроенных элементов Access: знаков операций, функций, полей из любых таблиц или запросов БД, элементов управления любых объектов БД (например, форм). Для более быстрого и правильного построения выражения можно воспользоваться услугами построителя выражений (контекстное меню/пункт Построить или специальная пиктограмма с тремя точками внизу). При этом открывается окно Построитель выражений (рис. 3.15).
На рис. 3.15 показан пример вычисления по полям Стоимость и Количество значений в новом поле Общая стоимость. Отметим, что при вызове окна Построитель выражений курсор должен находиться в строке Поле в новом столбце Общая стоимость, стоящем правее за столбцом «Количество» (в запросе указать все столбцы (поля) исходной таблицы).
Рис. 3.15. Окно Построитель выражений с примером вычисления значений в новом поле Общая стоимость
На рис. 3.16 показан результат выполнения этого запроса.
Группирование - это специальная операция, применяемая к результирующему множеству записей запроса на выборку. Она заключается в том, что все записи делятся на группы с одинаковыми значениями поля группирования, далее для каждой группы формируемся одна-единственная запись, которая и будет включена в окончательный результат запроса.
Например, требуется узнать, какие цвета товары представлены в нашей базе. Чтобы реализовать такой запрос, необходимо, как обычно, открыть диалог конструктора запроса. Затем добавить в него таблицу-источник требующихся данных (таблица TYPE) и отобрать из нее поле Цвет. Далее следует установить операцию группирования, для этого выбрать в меню Вид пункт Групповые операции. При этом в нижней половине окна конструктора (QBE) появляется
Рис. 3.16. Результат выполнения запроса, показанного на рис. 3.15
строка Групповая операция, а в столбцах устанавливается значение Группировка. В результате при запуске запроса мы получаем столько записей, сколько различных цветов есть в таблице TYPE (рис. 3.17).
Рис. 3.17. Результат выполнения запроса на группирование
Вычисления по вертикали - это такая возможность конструктора запросов, которая тесно связана с операциями группирования и расширения (вычисления по горизонтали), рассмотренными выше. Предположим, что в предыдущем примере необходимо не просто получить список цветов, но и вычислить количество видов товара каждого цвета. Чтобы осуществить такое вычисление, необходимо расширить список полей еще одним полем Количество видов товара, в котором и будет реализовано нужное вычисление.
Чтобы задать имя добавляемому полю запроса, необходимо ввести его в начале этого столбца в строке Поле и поставить разделитель двоеточие перед основным именем поля, например: Количество видов товара : Цвет. Здесь Количество видов товара - это имя нового поля в запросе.
Затем в строке Групповая операция в поле Количество видов товара щелкнуть левой кнопкой мыши и в развернувшемся списке выбрать агрегатную функцию Count (рис. 3.18). Данная функция подсчитывает количество строк в группе (при выполнении группировки) или количество строк результата запроса.
Рис. 3.18. Окно построителя запроса на выборку (количества видов товара
каждого цвета)
Результат выполнения запроса показан на (рис. 3.19). При вычислениях по вертикали, как видно из списка, возможен и ряд других функций, например: наибольший (Мах), первый (First), Avg (среднее), Sum (сумма) и т. д.
Рис. 3.19. Результат выполнения запроса на выборку, представленного
на рис. 3.18