
SQL Вы открыли пиццерию. Создать таблицу с разными пиццами (id, название, описание, цена).
Создать таблицу с заказами (id, id_заказанной_пиццы, количество, время заказа (под время есть отдельный тип данных). Заполнить обе таблицы большим количеством данных (5+ пицц, 15+ заказов). Выполнить следующие запросы: 1. Получить все заказы с подробной информацией о заказанной пицце (select заказ join пицца). 2. Получить все заказы на пиццу ГАВАЙСКАЯ (или другая). 3. Узнать, сколько всего денег вы заработали на пицце ГАВАЙСКАЯ. 4. Получить статистику (ПИЦЦА - КОЛ-ВО ЗАКАЗОВ) (группировка)

Ответы на вопрос

Тип БД був не вказаний, тому робила для SQLite, ще й сама зрозуміла як з нею працювати
ATTACH DATABASE 'D:\Dev\Pizzeria.sqlite3' AS Pizzeria;
-- створення таблиць
drop TABLE IF EXISTS Піца;
drop TABLE IF EXISTS Замовлення;
CREATE TABLE Піца (
id INTEGER PRIMARY KEY AUTOINCREMENT,
назва TEXT UNIQUE NOT NULL,
опис TEXT,
ціна REAL NOT NULL
);
CREATE TABLE Замовлення (
id INTEGER PRIMARY KEY AUTOINCREMENT,
id_замовленої_піци INTEGER NOT NULL,
кількість INTEGER NOT NULL,
час_замовлення text NOT NULL,
FOREIGN KEY (id_замовленої_піци) REFERENCES Піца (id)
);
-- заповнення тестовими даними
INSERT INTO Піца (назва, опис, ціна) VALUES
('Маргарита', 'Класична піца з соусом та сиром', 10.99),
('Гавайська', 'Піца з ананасами та шинкою', 12.99),
('Пепероні', 'Піца з гострою пепероні', 11.99),
('Вегетаріанська', 'Піца з овочами', 9.99),
('Чотири сири', 'Піца з чотирма видами сиру', 13.99);
INSERT INTO Замовлення (id_замовленої_піци, кількість, час_замовлення ) VALUES
(1, 2, datetime('now', '-25 hours')),
(3, 1, datetime('now', '-24 hours')),
(2, 3, datetime('now', '-23 hours')),
(4, 2, datetime('now', '-22 hours')),
(5, 1, datetime('now', '-21 hours')),
(1, 1, datetime('now', '-20 hours')),
(3, 2, datetime('now', '-18 hours')),
(2, 1, datetime('now', '-17 hours')),
(4, 3, datetime('now', '-16 hours')),
(5, 2, datetime('now', '-15 hours')),
(1, 3, datetime('now', '-14 hours')),
(3, 1, datetime('now', '-13 hours')),
(2, 2, datetime('now', '-12 hours')),
(4, 1, datetime('now', '-11 hours')),
(5, 3, datetime('now', '-10 hours'));
-- Запити
--Отримати всі замовлення з детальною інформацією про замовлену піцу:
SELECT Замовлення.id, Піца.назва, Піца.опис, Піца.ціна, Замовлення.кількість, Замовлення.час_замовлення
FROM Замовлення
INNER JOIN Піца ON Замовлення.id_замовленої_піци = Піца.id;
--Отримати всі замовлення на піцу "ГАВАЙСЬКА" (або будь-яку іншу піцу за назвою):
SELECT Замовлення.id, Піца.назва, Замовлення.кількість, Замовлення.час_замовлення
FROM Замовлення
INNER JOIN Піца ON Замовлення.id_замовленої_піци = Піца.id
WHERE Піца.назва = 'Гавайська';
--Дізнатися, скільки всього грошей ви заробили на піці "ГАВАЙСЬКА":
SELECT SUM(Піца.ціна * Замовлення.кількість) AS "Загальний дохід"
FROM Замовлення
INNER JOIN Піца ON Замовлення.id_замовленої_піци = Піца.id
WHERE Піца.назва = 'Гавайська';
--Отримати статистику (кількість замовлень) для кожної піци:
SELECT Піца.назва, COUNT(Замовлення.id) AS "кількість Замовлень"
FROM Піца
LEFT JOIN Замовлення ON Піца.id = Замовлення.id_замовленої_піци
GROUP BY Піца.назва;



Для выполнения этих запросов, вам понадобятся SQL-запросы. Приведу примеры запросов на языке SQL с комментариями:
- Получить все заказы с подробной информацией о заказанной пицце:
sqlSELECT заказ.id, пицца.название, пицца.описание, заказ.количество, заказ.время_заказа
FROM заказ
JOIN пицца ON заказ.id_заказанной_пиццы = пицца.id;
- Получить все заказы на пиццу ГАВАЙСКАЯ (или другая):
sqlSELECT заказ.id, пицца.название, заказ.количество, заказ.время_заказа
FROM заказ
JOIN пицца ON заказ.id_заказанной_пиццы = пицца.id
WHERE пицца.название = 'ГАВАЙСКАЯ';
- Узнать, сколько всего денег вы заработали на пицце ГАВАЙСКАЯ:
sqlSELECT SUM(пицца.цена * заказ.количество) AS выручка
FROM заказ
JOIN пицца ON заказ.id_заказанной_пиццы = пицца.id
WHERE пицца.название = 'ГАВАЙСКАЯ';
- Получить статистику (ПИЦЦА - КОЛ-ВО ЗАКАЗОВ) с группировкой:
sqlSELECT пицца.название, COUNT(заказ.id) AS количество_заказов
FROM заказ
JOIN пицца ON заказ.id_заказанной_пиццы = пицца.id
GROUP BY пицца.название;
Эти запросы предполагают, что у вас есть таблицы "пицца" и "заказ", как описано, и что данные в них уже заполнены. Вы можете выполнить эти запросы в вашей системе управления базами данных, заменив "пицца" и "заказ" на реальные имена ваших таблиц, а также учтя специфику вашей базы данных и SQL-синтаксиса.


Похожие вопросы
Топ вопросов за вчера в категории Информатика







Последние заданные вопросы в категории Информатика
-
Математика
-
Литература
-
Алгебра
-
Русский язык
-
Геометрия
-
Английский язык
-
Химия
-
Физика
-
Биология
-
Другие предметы
-
История
-
Обществознание
-
Окружающий мир
-
География
-
Українська мова
-
Информатика
-
Українська література
-
Қазақ тiлi
-
Экономика
-
Музыка
-
Право
-
Беларуская мова
-
Французский язык
-
Немецкий язык
-
МХК
-
ОБЖ
-
Психология
-
Физкультура и спорт
-
Астрономия
-
Кыргыз тили
-
Оʻzbek tili