- •Методические указания к лабораторной работе №4 «Базы данных. Язык запросов sql»
- •Введение
- •Выборка данных
- •Сортировка данных
- •Фильтрация данных
- •Использование функций
- •Агрегирующие функции
- •Использование подзапросов
- •Объединение таблиц
- •Тестовые данные
- •Варианты заданий
- •Вариант 1 «Хранилище документов»
- •Вариант 2 «Музыкальный архив»
- •Вариант 3 «Библиотека»
- •Вариант 4 «Почтовый сервер»
- •Вариант 5 «Страховая компания»
- •Вариант 6 «Сервисный центр»
- •Список литературы
Тестовые данные
Все приведенные примеры запросов тестировались на базе данных Microsoft Office Access 2007 (тестовая база данных предоставляется вместе с данными методическими указаниями). Для того чтобы воспроизвести результат этих запросов, необходимо создать аналогичную по структуре базу данных и наполнить ее тестовыми данными. Тестовая база данных представляет собой модель базы данных, предназначенной для автоматизации взаимодействия организации с покупателями. В базе данных содержатся сведения о покупателях, их заказах и продуктах.
Таблица Customers содержит информацию о покупателях. Записи таблицы уникально идентифицируются по значению числового автоинкрементного поля CustomerID. В остальных полях таблицы содержится информация о покупателе: имя (CustomerName), фамилия (CustomerSurname), домашний адрес (CustomerAdress) и адрес электронной почты (CustomerEMail). Исходное содержимое таблицы Customers представлено в табл. 3.
Таблица Orders содержит заказы покупателей. Один заказ может включать несколько различных продуктов. Записи таблицы заказов уникально идентифицируются по значению автоинкрементного поля OrderID. В остальных полях таблицы содержится номер покупателя (CustomerID) и дата заказа (OrderDate). Исходное содержимое таблицы Orders представлено в табл. 4.
Таблица OrderItems содержит детальную информацию о заказах: одна строка таблицы соответствует одному виду заказываемого покупателем в рамках одного заказа. Записи таблицы уникально идентифицируются по значению автоинкрементного поля OrderItemID. Дополнительно в детальной строке заказа указывается номер заказа (OrderID), к которому относится детальная строка, количество заказанных единиц продукта (OrerItemQuantity) и общая цена строки заказа (OrderItemPrice). Исходное содержимое таблицы OrderItems представлено в табл. 5.
Таблица Products содержит сведения о продуктах. Записи таблицы уникально идентифицируются по значению автоинкрементного поля ProductID. Дополнительно о каждом продукте в таблице записывается его название (ProductName), описание (ProductDescription), оптовая цена (ProductWholesalePrice), розничная цена (ProductRetailPrice) и признак непрекратившихся поставок (ProductSupplied). Исходное содержимое таблицы Products представлено в табл. 6.
Структура таблиц тестовой базы данных и их связи представлены на рис. 1.
Таблица 3. Исходное содержимое таблицы Customers
№ |
CustomerName |
CustomerSurname |
CustomerAddress |
CustomerEMail |
1 |
Иван |
Березин |
ул. Ленина, 42-41 |
Berezin@gmail.com |
2 |
Сергей |
Борисов |
ул. Карла Маркса, 2-15 |
Borisov@mail.ru |
3 |
Филипп |
Важин |
ул. Стадионная, 11-61 |
Vazhin@yahoo.com |
4 |
Олег |
Репин |
ул. Октября, 71-25 |
Repin@mail.ru |
5 |
Алексей |
Александров |
ул. Горького, 17-43 |
Alexandrov@gmail.com |
Таблица 4. Исходное содержимое таблицы Orders
OrderID |
CustomerID |
OrderDate |
1 |
1 |
21.02.2010 |
2 |
1 |
23.02.2010 |
3 |
5 |
18.02.2010 |
Таблица 5. Исходное содержимое таблицы OrderItems
OrderItemID |
OrderID |
ProductID |
OrderItemQuantity |
OrderItemPrice |
1 |
1 |
1 |
1 |
18,00 |
2 |
2 |
1 |
1 |
18,00 |
3 |
3 |
1 |
1 |
18,00 |
4 |
3 |
2 |
2 |
15,00 |
Таблица 6. Исходное содержимое таблицы Products
ProductID |
ProductName |
ProductWhole-salePrice |
ProductRe-tailPrice |
Product-Supplied |
ProductDes-cription |
1 |
Цейлонский чай |
13,50 |
18,00 |
True |
Цейлонский чай |
2 |
Сироп |
7,50 |
10,00 |
True |
Сироп |
3 |
Оливковое масло |
16,00 |
21,35 |
True |
Оливковое масло |
4 |
Карри |
30,00 |
40,00 |
True |
Банка по 400 г. |
5 |
Мармелад |
60,75 |
81,00 |
True |
В коробке 10 штук |
6 |
Пиво |
10,50 |
14,00 |
True |
В бутылке 12 унций |
7 |
Кофе |
34,50 |
46,00 |
True |
Банка по 500 г. |
8 |
Пельмени |
28,50 |
38,00 |
False |
Пакет по 250 г. |