Домашнее задание №1 по дисциплине «Основы проектирования баз данных» Вариант № 15 Создать в Access базу данных

Дипломные работы на заказ

Домашнее задание №1 по дисциплине «Основы проектирования баз данных»
Вариант № 15
Создать в Access базу данных, состоящую из 4-х связанных таблиц, представленных ниже:
Продукты:
№ позиции Наименование продукта Единицы измерения
100 Мидии кг
101 Лук кг
102 Сыр граммы
103 Майонез кг
105 Кальмары кг
106 Яйцо куриное шт
107 Огурец соленый кг
108 Яблоки кг
109 Дыня кг
Рецепты блюд:
№ рецепта Название блюда
101 Салат с кальмарами
103 Жульен с мидиями
Ингредиенты:
№ рецепта Номенклатурный № Количество
103 100 0,340
103 101 0,100
103 102 0,080
Ингредиенты1:
№ рецепта Номенклатурный № Количество
103 103 0,100
101 105 0,300
101 106 3
101 107 0,150
101 108 0,300
Для этого необходимо на языке SQL написать и выполнить следующие запросы:
Создать с помощью конструктора представленные выше таблицы, индексы по первичным и родительским ключам.
Создать «Схему данных».

INSERT INTO – заполнить полученные таблицы данными.

Продукты:

INSERT INTO [Продукты] ([Наименование продукта], [Единица измерения])
VALUES (‘Мидии’, ‘кг’);

INSERT INTO [Продукты] ([Наименование продукта], [Единица измерения])
VALUES (‘Лук’, ‘кг’);

INSERT INTO [Продукты] ([Наименование продукта], [Единица измерения])
VALUES (‘Сыр’, ‘граммы’);

INSERT INTO [Продукты] ([Наименование продукта], [Единица измерения])
VALUES (‘Майонез’, ‘кг’);

INSERT INTO [Продукты] ([Наименование продукта], [Единица измерения])
VALUES (‘Кальмары’, ‘кг’);

INSERT INTO [Продукты] ([Наименование продукта], [Единица измерения])
VALUES (‘Яйцо куриное’, ‘шт’);

INSERT INTO [Продукты] ([Наименование продукта], [Единица измерения])
VALUES (‘Огурец соленый’, ‘кг’);

INSERT INTO [Продукты] ([Наименование продукта], [Единица измерения])
VALUES (‘Яблоки’, ‘кг’);

INSERT INTO [Продукты] ([Наименование продукта], [Единица измерения])
VALUES (‘Дыня’, ‘кг’);

Рецепты:

INSERT INTO [Рецепты блюд] ([№ рецепта],[Название блюда])
VALUES (‘101′,’Салат с кальмарами’);

INSERT INTO [Рецепты блюд] ([№ рецепта],[Название блюда])
VALUES (‘103′,’Жульен с мидиями’);

Ингредиенты:

INSERT INTO [Ингредиенты] ([№ рецепта], [Номенклатурный №], [Количество])
VALUES (‘103’, ‘100’, ‘0.340’);

INSERT INTO [Ингредиенты] ([№ рецепта], [Номенклатурный №], [Количество])
VALUES (‘103’, ‘101’, ‘0.100’);

INSERT INTO [Ингредиенты] ([№ рецепта], [Номенклатурный №], [Количество])
VALUES (‘103’, ‘102’, ‘0.080’);

Ингредиенты1:

INSERT INTO [Ингредиенты1] ([№ рецепта], [Номенклатурный №], [Количество])
VALUES (‘103’, ‘103’, ‘0.100’);

INSERT INTO [Ингредиенты1] ([№ рецепта], [Номенклатурный №], [Количество])
VALUES (‘101’, ‘105’, ‘0.300’);

INSERT INTO [Ингредиенты1] ([№ рецепта], [Номенклатурный №], [Количество])
VALUES (‘101’, ‘106’, ‘3’);

INSERT INTO [Ингредиенты1] ([№ рецепта], [Номенклатурный №], [Количество])
VALUES (‘101’, ‘107’, ‘0.150’);

INSERT INTO [Ингредиенты1] ([№ рецепта], [Номенклатурный №], [Количество])
VALUES (‘101’, ‘108’, ‘0.300’);

INSERT INTO – заполнить таблицу «Ингредиенты» данными из таблицы «Ингредиенты1»

INSERT INTO [Ингредиенты] ([№ рецепта], [Номенклатурный №], [Количество])
SELECT * FROM [Ингредиенты1]

UPDATE — изменить в поле «№ рецепта» с 101 на 102 во всех таблицах.

UPDATE [Рецепты блюд]
SET [№ рецепта]=102
WHERE [№ рецепта]=101;

UPDATE [Ингредиенты]
SET [№ рецепта]=102
WHERE [№ рецепта]=101;

UPDATE [Ингредиенты1]
SET [№ рецепта]=102
WHERE [№ рецепта]=101;

DELETE – удалить данных по продукту № позиции 108 из всех таблиц.

DELETE *
FROM [Продукты]
WHERE [№ позиции]=108;

DELETE *
FROM [Ингредиенты]
WHERE [Номенклатурный №]=108;

DELETE *
FROM [Ингредиенты1]
WHERE [Номенклатурный №]=108;

DELETE – удалить таблицу «Ингредиенты1».

DROP TABLE [Ингредиенты1];

SELECT — вывести на экран записи, содержащие следующие поля: № позиции, Наименование продукта, Единицы измерения для Ингредиентов Блюд, вес которых находится в диапазоне от 0,3 до 2,0.

SELECT DISTINCT [№ позиции], [Наименование продукта], [Единица измерения]
FROM [Продукты], [Ингредиенты]
WHERE [Количество] >= 0.3 AND [Количество] < 2.0;

SELECT — после ввода в диалоговом окне № рецепта, вывести на экран записи, содержащие следующие поля: № рецепта, Название блюда, Наименование продукта, Единицы измерения, Количество по каждому рецепту.

SELECT DISTINCTROW Ингредиенты.[№ рецепта], [Рецепты блюд].[Название блюда], Продукты.[Наименование продукта], Продукты.[Единица измерения], Count(*) AS [Count — Ингредиенты]
FROM [Рецепты блюд] INNER JOIN (Продукты INNER JOIN Ингредиенты ON Продукты.[№ позиции] = Ингредиенты.[№ рецепта]) ON [Рецепты блюд].[№ рецепта] = Ингредиенты.[№ рецепта]
GROUP BY Ингредиенты.[№ рецепта], [Рецепты блюд].[Название блюда], Продукты.[Наименование продукта], Продукты.[Единица измерения]
HAVING (((Ингредиенты.[№ рецепта])=[Формы].[Select-1].[NomerRetsepta]));

SELECT — вывести на экран записи, содержащие следующие поля: № позиции, Наименование продукта, Единицы измерения для всех продуктов, которые не используются ни в одном рецепте.

SELECT Продукты.[№ позиции], Продукты.[Наименование продукта], Продукты.[Единица измерения]
FROM Продукты
WHERE Продукты.[№ позиции] NOT IN (SELECT Ингредиенты.[Номенклатурный №] FROM Ингредиенты);

SELECT — вывести на экран записи, содержащие следующие поля: № рецепта, Наименование блюда, Количество ингредиентов, которое входят в данное блюдо, если это количество не меньше трех.

SELECT DISTINCTROW [Рецепты блюд].[№ рецепта], [Рецепты блюд].[Название блюда], Count(*) AS [Count — Ингредиенты]
FROM [Рецепты блюд] INNER JOIN Ингредиенты ON [Рецепты блюд].[№ рецепта] = Ингредиенты.[№ рецепта]
GROUP BY [Рецепты блюд].[№ рецепта], [Рецепты блюд].[Название блюда]
HAVING (((Count(*))>=3));

SELECT — вывести на экран запись – среднее количество ингредиентов, которое входит в рецепт блюда.

SELECT DISTINCTROW [Рецепты блюд].[№ рецепта], [Рецепты блюд].[Название блюда], Avg(Ингредиенты.Количество) AS [Avg — Количество]
FROM [Рецепты блюд] INNER JOIN Ингредиенты ON [Рецепты блюд].[№ рецепта] = Ингредиенты.[№ рецепта]
GROUP BY [Рецепты блюд].[№ рецепта], [Рецепты блюд].[Название блюда];

SELECT — вывести на экран записи, содержащие следующие поля: № позиции, Наименование продукта, Единицы измерения, Количество рецептов, в которое входит данный продукт.

SELECT DISTINCTROW Продукты.[№ позиции], Продукты.[Наименование продукта], Продукты.[Единица измерения], COUNT(Ингредиенты.[№ рецепта]) AS [Количество рецептов]
FROM Продукты INNER JOIN Ингредиенты ON Продукты.[№ позиции] = Ингредиенты.[Номенклатурный №]
GROUP BY Продукты.[№ позиции], Продукты.[Наименование продукта], Продукты.[Единица измерения];

SELECT — вывести на экран запись, содержащую следующие поля: : № рецепта, Наименование блюда, Количество ингредиентов для рецепта, содержащего максимальное количество ингредиентов.

SELECT DISTINCTROW [Рецепты блюд].[№ рецепта], [Рецепты блюд].[Название блюда], Count(*) AS [Count — Ингредиенты]
FROM [Рецепты блюд] INNER JOIN Ингредиенты ON [Рецепты блюд].[№ рецепта] = Ингредиенты.[№ рецепта]
GROUP BY [Рецепты блюд].[№ рецепта], [Рецепты блюд].[Название блюда]
HAVING Count(*) = (SELECT MAX(Ингредиенты.[Количество]) FROM Ингредиенты);


+7 (812) 389-23-13

Работаем: Пн-Пт, с 10 до 17

+7 (499) 649-65-17

Работаем: Пн-Пт, с 10 до 17