§ На вкладке Создание нажать кнопку Конструктор запросов
§ В окне Добавление таблицы выберите таблицы «MUSICIANS» и DISKS. Нажмите кнопку Добавить, а затем Закрыть
§ Выберите вид представления запроса Режим SQL (левая верхняя иконка), нажав на стрелочку в кнопке
1. Вывести на экран все диски с соответствующей и полной информацией об исполнителе
SELECT * FROM MUSICIANS INNER JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID;
где INNER JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID обозначает, что будут выбираться все записи из таблиц MUSICIANS и DISKS, у которых совпадают поля ID и MUS_ID, т.е. для каждого диска из таблицы MUSICIANS будет браться информация об исполнителе;
Читается этот запрос следующим образом: Выбрать все записи из таблиц DISKS с полной информацией из таблицы MUSICIANS, соответствующей записи DISKS.
Нажмите на кнопку «Запуск» - и посмотрите результат запроса;
Сохраните запрос(Файл/Сохранить как) под именем «Упражнение 1»
2. Составим запрос к базе данных, при выполнении которого будут выдаваться на экран все исполнители и выпущенные ими диски, причем исполнители, которые еще не выпускали диски должны присутствовать в списке:
SELECT * FROM MUSICIANS LEFT JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID;
где LEFT JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID обозначает, что при построении отчета будет браться запись из таблицы MUSICIANS и в таблице DISKS будут искаться соответствующие записи. Если таких записей найдено не будет, то будет выдаваться запись таблицы MUSICIANS с пустой информацией из таблицы DISKS.
Нажмите на кнопку «Запуск» - и посмотрите результат запроса;
Сохраните запрос(Файл/Сохранить как) под именем «Упражнение 2»
3. Составим запрос к базе данных, при выполнении которого будут выдаваться на экран все исполнители и выпущенные ими диски, причем на экран должны выдаваться имя исполнителя и название диска и дата образования/рождения группы/исполнителя должна быть позже 1990 года:
SELECT MUSICIANS.NAME, DISKS.NAME FROM MUSICIANS INNER JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID WHERE MUSICIANS.BIRTHDAY > DateValue('01.01.1990');
где WHERE MUSICIANS.BIRTHDAY > DateValue('01.01.1990') говорит о том, что MUSICIANS.BIRTHDAY должна быть позже 01.01.1990.
Функция DateValue('01.01.1990') преобразует строковое выражение '01.01.1990' в переменную типа дата.
Нажмите на кнопку «Запуск» - и посмотрите результат запроса;
Сохраните запрос(Файл/Сохранить как) под именем «Упражнение 3»
4. Составим запрос к базе данных, при выполнении которого будут выдаваться на экран доход, полученный каждым исполнителем (Название исполнителя, доход):
SELECT MUSICIANS.NAME, SUM(DISKS.PROFIT) FROM MUSICIANS INNER JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID GROUP BY MUSICIANS.NAME;
где функция sum(DISCS.PROFIT) выдает сумму значений в поле DISCS.PROFIT
GROUP BY – определяет по какому полю осуществлять группировку записей
Нажмите на кнопку «Запуск» - и посмотрите результат запроса;
Сохраните запрос(Файл/Сохранить как) под именем «Упражнение 4»
5. Составим запрос к базе данных, при выполнении которого будут выдаваться на экран количество проданных дисков, каждого исполнителя (Название исполнителя, количество проданных):
SELECT MUSICIANS.NAME, count(*) FROM MUSICIANS INNER JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID group by MUSICIANS.NAME;
Нажмите на кнопку «Запуск» - и посмотрите результат запроса;
Сохраните запрос(Файл/Сохранить как) под именем «Упражнение 5»
6. Составим запрос к базе данных, при выполнении которого будут выдаваться на экран объем рынка музыкальной продукции по странам, отсортированный в порядке убывания объема рынка:
SELECT MUSICIANS.COUNTRY, SUM(DISKS.PROFIT) AS 'Объем рынка' FROM MUSICIANS INNER JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID group by MUSICIANS.COUNTRY order by 2 DESC;
где AS ‘Объем рынка’ задает название колонки SUM(DISCS.PROFIT
ORDER BY 2 DESC – говорит о том, что результат будет отсортирован по второму столбцу по убыванию от большого значения к маленькому (DESC – Descending) определяет по какому полю осуществлять группировку записей
Нажмите на кнопку «Запуск» - и посмотрите результат запроса;
Сохраните запрос(Файл/Сохранить как) под именем «Упражнение 6»
7. Составим запрос к базе данных, при выполнении которого будут выдаваться на экран объемы рынков музыкальной продукции по странам, крупнейшим игрокам рынка, у которых объем рынка более 100 т $, отсортированный в порядке убывания объема рынка:
SELECT MUSICIANS.COUNTRY, SUM(DISKS.PROFIT) AS 'Объем рынка'
FROM MUSICIANS INNER JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID group by MUSICIANS.COUNTRY having SUM(DISKS.PROFIT)>100 order by 2 DESC;
где having SUM(DISKS.PROFIT)>100 задает ограничение на вычисляемые в результате группировки поля.
Нажмите на кнопку «Запуск» - и посмотрите результат запроса;
Сохраните запрос(Файл/Сохранить как) под именем «Упражнение 7»
8. Составим запрос к базе данных, при выполнении которого будут выдаваться на экран объемы рынков музыкальной продукции по странам, 5 крупнейшим игрокам рынка, у которых объем рынка более 100 т $, отсортированный в порядке убывания объема рынка:
SELECT TOP 5 MUSICIANS.COUNTRY, SUM(DISKS.PROFIT) AS 'Объем рынка' FROM MUSICIANS INNER JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID group by MUSICIANS.COUNTRY order by 2 DESC ;
где TOP 5 задает ограничение на количество выдаваемых на экран записей.
Нажмите на кнопку «Запуск» - и посмотрите результат запроса;
Сохраните запрос(Файл/Сохранить как) под именем «Упражнение 8»
9. Составим запрос к базе данных, при выполнении которого будут выдаваться на экран средний доход, полученный каждым исполнителем (Название исполнителя, доход)от продажи одного диска:
SELECT AVG (DISKS.PROFIT/DISKS.COPIES) AS [Sum-PROFIT] FROM MUSICIANS INNER JOIN DISKS ON MUSICIANS.ID = DISKS.MUS_ID GROUP BY MUSICIANS.Name;
где функция AVG(DISCS.PROFIT) выдает среднее значение в поле DISCS.PROFIT
GROUP BY – определяет по какому полю осуществлять группировку записей
Нажмите на кнопку «Запуск» - и посмотрите результат запроса;
Сохраните запрос(Файл/Сохранить как) под именем «Упражнение 9»
Задачи:
1. Составить запрос к базе данных, при выполнении которого будет выдаваться на экран список исполнителей (название исполнителя и дата рождения/образования), отсортированный по дате рождения/образования, а также доход, полученный исполнителями от продажи своих дисков.
Запрос сохранить под названием «Задача 1»
2. Составить запрос к базе данных, при выполнении которого будет выдаваться на экран список стран и доход, полученный всеми исполнителями страны по годам выпуска дисков.
Запрос сохранить под названием «Задача 2»
3. Составить запрос к базе данных, при выполнении которого будут выдаваться на экран список из 3-х исполнителей/групп, выпустивших максимальное количество дисков за период с 1985 по 2005 годы, с указанием количества дисков и года образования/рождения группы/исполнителя.
Запрос сохранить под названием «Задача 3»
4. Составить запрос к базе данных, при выполнении которого будут выдаваться на экран список стран и количество дисков, выпущенных в каждой из стран за период с 1985 по 2005 годы, отсортированный в порядке убывания количества выпущенных дисков и только те страны, в которых было выпущено более 100 000 дисков.
Запрос сохранить под названием «Задача 4»
5. Составить запрос к базе данных, при выполнении которого будут выдаваться на экран список стран и средняя стоимость дисков в каждой из стран.
Запрос сохранить под названием «Задача 5»
Задание 2. Выполнить запросы к базе данных индивидуального варианта.
Контрольные вопросы
Каким образом сохранить результаты запроса в таблице?
Какими средствами SQL реализуются следующие операции реляционной алгебры: ограничение, декартово произведение, выбор, пересечение, объединение, разность, соединение?
Что такое внешнее соединение?
В каких случаях вместо фразы IN можно использовать операцию сравнения?
Какие существуют средства группирования в SQL? Как они используются?
Лабораторная работа № 4
Формирование строки SQL - запроса в VBA
Цель: Вы научитесь:
.
§ создавать объект типа “Форма” и её объектов управления с помощью Конструктора и с помощью Мастера;
§ осваивать методы задания свойств элементов формы в окне свойств;
§ осваивать методы задания свойств элементов формы, используя VBA.
Для достижения цели перед студентами ставятся и решаются следующие задачи:
1. Экспорт таблиц в Microsoft Access;
2. Создание форм с помощью конструктора;
3. Размещение на форме элементов управления: список, поле со списком, переключатель, поле, кнопка;
4. Создание запросов SQL как источник данных для списков.
Содержание отчета
1. Название и цель выполнения работы.
2. Выполнить подготовительную часть.
3. Условие задачи.
4. Форма. Программный код.
5. Краткое описание действий по выполнению практической части.