Теперь установим связи между таблицами. Для этого выполняем следующие действия:
1) закроем все открытые таблицы. Создавать или изменять связи между открытыми таблицами нельзя;
2) переключимся в окно базы данных. Для переключения в окно базы данных из других окон нажмем клавишу F11;
3) нажмем кнопку на панели инструментов или выберите меню «Сервис/Схемаданных»;
4) если в базе данных не определено никаких связей, то на экран автоматически выводится окно «Добавление таблицы»;
5) дважды щелкнем левой кнопкой мыши по именам таблиц или нажмем кнопку «Добавить», выделив мышью имена таблиц, для которых требуется определить связи. Затем закроем диалоговое окно Добавление таблицы, нажав кнопку «Закрыть»;
6) для связывания полей установим курсор мыши на поле в одной таблице, нажмем левую кнопку мыши и, не отпуская, перетащим его на соответствующее поле во второй таблице. В представленном окне подведем курсор мыши к полю «Код вида» в таблице «Вид товара» левую кнопку мыши и, удерживая ее в нажатом положении, переместите его на поле «Код вида» в таблице «Товар», отпустите кнопку мыши. На экране появится диалоговое окно связи, в котором указаны поля таблиц «Вид товара» и «Товар», по которым установлена связь. В диалоговом окне можно проверить имена полей, представленные в двух колонках. В случае необходимости можно внести изменения.
При этом в разделе «Тип отношения» автоматически устанавливается тип связи - Один-ко-многим.
Определим параметры связи, для этого установив флажки «Обеспечение целостности данных» и «Каскадное обновление связанных полей». Нажмем кнопку «Создать».
Аналогично производится связывание всех остальных таблиц базы.
В результате получим схему данных, представленную на рисунке 6.
Рисунок 6 – Схема данных
Теперь мы можем вводить данные в таблицы, при этом сначала заполняем главные таблицы, затем для каждой записи главной таблицы создаем несколько записей в подчиненной таблице. Примеры заполненных таблиц представлены на рисунках 7, 8, 9, 10 и 11.
Рисунок 7 – Таблица «Вид товара»
Рисунок 8 – Таблица «Страна изготовитель»
Рисунок 9 – Таблица «Поставщик»
Рисунок 10 – Таблица «Поставка»
Рисунок 11 – Таблица «Товар»
3.2 Реализация запросов к базе данных
Запрос 1. Создадим в режиме конструктора запрос для отбора информации о товарах, изготовленных во Франции.
Динамическая таблица должна содержать поля «Код товара», «Название товара», «Вид товара» и «Страна изготовитель».
Чтобы создать этот запрос сначала необходимо нажать кнопку «Запросы» на панели «Объекты» окна базы данных, затем кнопку «Создание запроса в режиме конструктора». Далее щелчком мыши выделяем таблицы «Товар», «Вид товара», «Страна изготовитель» и нажмем кнопку «Добавить», затем кнопку «Закрыть». Затем в бланк запроса добавляем поля «Товар», «Код товара» из таблицы «Товар», «Вид товара» из таблицы «Вид товара» и «Название страны» из таблицы «Страна изготовитель». Зададим сортировку записей динамической таблицы в алфавитном порядке по полю «Товар», для этого щелкнем мышкой в строке «Сортировка» бланка запроса для поля «Товар» и выберите из списка «по возрастанию». Проверим наличие флажков в строке «Вывод на экран» бланка запроса для всех добавленных полей.
Чтобы вывести на экран только те товары, которые изготовлены во Франции, в строке «Условие отбора» для поля «Название страны» введем слово «Франция» и нажмем Enter. Чтобы запустить запрос на выполнение, необходимо выполнить команду меню «Вид/Режим таблицы» или открыть список инструмента
и выбрать в нем «Режим таблицы» или нажать кнопку на панели инструментов или выполнить команду меню «Запрос/Запуск». Запрос в режиме конструктора представлен на рисунке 12.Рисунок 12 – Запрос «Товары из Франции» в режиме конструктора
Результат запроса в режиме таблицы представлен на рисунке 13.
Рисунок 13 – Запрос «Товар из Франции» в режиме таблицы
Текст запроса «Товары из Франции» на языке SQL:
SELECT Товар.кодТовара, Товар.названиеТовара, ВидТовара.видТовара, [Страна изготовитель].названиеСтраны
FROM [Страна изготовитель] INNER JOIN (ВидТовара INNER JOIN Товар ON ВидТовара.кодВида = Товар.кодВида) ON [Страна изготовитель].кодСтраны = Товар.кодСтраны
WHERE ((([Страна изготовитель].названиеСтраны)="Франция"))
ORDER BY Товар.названиеТовара.
Запрос 2. Далее создадим запрос для отбора тех товаров, стоимость которых составляет более 4000 рублей.
Динамическая таблица должна содержать поля «Код товара», «Название товара», «Вид товара» и «Стоимость единицы продукции».
Чтобы создать данный запрос сначала необходимо нажать кнопку «Запросы» на панели «Объекты» окна базы данных, затем кнопку «Создание запроса в режиме конструктора». Далее щелчком мыши выделяем таблицы «Товар» и «Вид товара» и нажмем кнопку «Добавить», затем кнопку «Закрыть». Затем в бланк запроса добавляем поля «Код товара», «Название товара» из таблицы «Товар» и «Вид товара» и «Стоимость единицы продукции» из таблицы «Вид товара». Проверим наличие флажков в строке «Вывод на экран» бланка запроса для всех добавленных полей.
Чтобы вывести на экран только те товары, стоимость которых более 4000 рублей, в строке «Условие отбора» для поля «Стоимость единицы продукции» введем выражение «>4000» и нажмем Enter. Запрос в режиме конструктора представлен на рисунке 14.
Рисунок 14 – Запрос «Стоимость товаров более 4000 рублей» в режиме конструктора
Результат запроса в режиме таблицы представлен на рисунке 15
Рисунок 15 – Запрос «Стоимость товаров более 4000 рублей» в режиме таблицы
Текст запроса «Стоимость товаров более 4000 рублей» на языке SQL:
SELECT Товар.кодТовара, Товар.названиеТовара, ВидТовара.видТовара, Товар.стоимостьЕдиницыПродукции
FROM ВидТовара INNER JOIN Товар ON ВидТовара.кодВида = Товар.кодВида
WHERE (((Товар.стоимостьЕдиницыПродукции)>4000)).
Запрос 3. Создадим запрос для отбора информации о поставщиках из Минска.
Динамическая таблица должна содержать поля «Код поставщика», «Поставщик» и «Адрес».
Для создания этого запроса нажмем кнопку «Запросы» на панели «Объекты» окна базы данных, затем кнопку «Создание запроса в режиме конструктора». Далее щелчком мыши выделяем таблицу «Поставщик» и нажмем кнопку «Добавить», затем кнопку «Закрыть». Затем в бланк запроса добавляем поля «Код поставщика», «Поставщик» и «Адрес». Проверим наличие флажков в строке «Вывод на экран» бланка запроса для всех добавленных полей.
Чтобы вывести на экран только поставщиков из Минска в строке «Условие отбора» для поля «Адрес» введем выражение Like "Минск*" и нажмем Enter. Запрос в режиме конструктора представлен на рисунке 16.
Рисунок 16 – Запрос «Поставщики из Минска» в режиме конструктора
Результат запроса в режиме таблицы представлен на рисунке 17
Рисунок 17 – Запрос «Поставщики из Минска» в режиме таблицы
Текст запроса «Поставщики из Минска» в режиме SQL:
SELECT Поставщик.кодПоставщика, Поставщик.поставщик, Поставщик.адрес
FROM Поставщик
WHERE (((Поставщик.адрес) Like "Минск*"));
Запрос 4. Далее создадим запрос на для изменения стоимости товаров третьего вида на 500 рублей. Нужно подсчитать новую стоимость товаров данного вида.
Динамическая таблица должна содержать поля «Код товара», «Название товара», «Название вида» и «Стоимость единицы продукции».
Для создания такого запроса нажмем кнопку «Запросы» на панели «Объекты» окна базы данных, затем кнопку «Создание запроса в режиме конструктора». Далее щелчком мыши выделяем таблицы «Товар» и «Вид товара» и нажмем кнопку «Добавить», затем кнопку «Закрыть». Затем в бланк запроса добавляем поля «Код товара», «Название товара», «Стоимость единицы продукции» из таблицы «Товар» и «Код вида» из таблицы «Вид товара». Проверим наличие флажков в строке «Вывод на экран» бланка запроса для всех добавленных полей. Щелкните мышкой в стоке «Условие отбора» для поля «Код вида», введем «3» и нажмем Enter. Добавим в запрос вычисляемое поле для расчета новой цены. Для этого в пустую ячейку строки «Поле» бланка запроса введем следующее выражение: «НоваяЦена: [стоимостьЕдиницыПродукции]+500». Запрос в режиме конструктора представлен на рисунке 18.