Hi! Could we please enable some services and cookies to improve your experience and our website?

SQLize | PHPize | SQLtest

Online Sandbox for SQL and PHP: Write, Run, Test, and Share SQL Queries and PHP Code

A A A
Login    Share code      Blog   FAQ
Copy Format Clear
DROP TABLE IF EXISTS `Статус_доставки`; CREATE TABLE `Статус_доставки` ( `Ид_статуса` INT NOT NULL AUTO_INCREMENT PRIMARY KEY, `Наименование` VARCHAR(50) NOT NULL, `Описание` VARCHAR(50) NOT NULL, `Когда_применяется` VARCHAR(50) NOT NULL ); INSERT INTO `Статус_доставки` VALUES (DEFAULT, "Ожидает обработки", "Заказ принят, но ещё не передан на кухню/доставку.", "После оформления заказа"), (DEFAULT, "Готовится", "Заказ находится на кухне.", "После подтверждения заказа"), (DEFAULT, "Передан в доставку", "Курьер забрал заказ, едет к клиенту.", "После приготовления"), (DEFAULT, "В пути", "Курьер в дороге.", "Во время доставки"), (DEFAULT, "Доставлен", "Заказ успешно передан клиенту.", "После вручения"), (DEFAULT, "Отменён", "Заказ отменён (клиентом или рестораном).", "До или во время доставки"), (DEFAULT, "Ожидает оплаты", "Клиент должен оплатить при получении.", "Если выбран наличный расчёт"), (DEFAULT, "Проблема с доставкой", "Курьер не может доставить заказ.", "При возникновении сложностей"), (DEFAULT, "Возврат", "Клиент отказался от заказа после доставки.", "После неудачной доставки"); SELECT * FROM `Статус_доставки`; DROP TABLE IF EXISTS `Клиент`; CREATE TABLE `Клиент` (`Ид_клиента` VARCHAR (10) NOT NULL PRIMARY KEY, `Фамилия` VARCHAR (50) NOT NULL, `Имя` VARCHAR (50) NOT NULL, `Отчество` VARCHAR (50) NOT NULL, `Телефон` VARCHAR (12) NOT NULL); INSERT INTO `Клиент` VALUES ("1", "Иванов", "Алексей", "Петрович", "+79170000000"), ("2", "Петров", "Антон", "Дмитриевич", "+79170000001"), ("3", "Зайцева", "Анна", "Антоновна", "+79170000002"); SELECT * FROM `Клиент`; DROP TABLE IF EXISTS `Пицца`; CREATE TABLE `Пицца` (`Ид_пиццы` VARCHAR (10) NOT NULL PRIMARY KEY, `Наименование` VARCHAR (50) NOT NULL, `Описание` VARCHAR (100) NOT NULL, `Цена` DECIMAL (8,2) NOT NULL); INSERT INTO `Пицца` VALUES ("PZ00000001", "Маргарита", "Томатный соус, моцарелла, базилик", 550.00), ("PZ00000002", "Пепперони", "Острые колбаски, сыр моцарелла, томатный соус", 620.00), ("PZ00000003", "Четыре сыра", "Моцарелла, горгонзола, пармезан, эмменталь", 580.00), ("PZ00000004", "Гавайская", "Ветчина, ананас, сыр, томатный соус", 490.00); SELECT * FROM `Пицца`; CREATE TABLE `Заказ` ( `Ид_заказа` VARCHAR(10) NOT NULL PRIMARY KEY, `Дата_время_заказа` DATETIME NOT NULL, `Стоимость` DECIMAL(10,2) NOT NULL DEFAULT 0.00, `Способ_оплаты` ENUM("наличные", "картой", "онлайн") NOT NULL, `Ид_клиента` VARCHAR(10) NOT NULL, `Оплата получена` BOOLEAN, CONSTRAINT `ВК_ЗАК_КЛИ` FOREIGN KEY (`Ид_клиента`) REFERENCES `Клиент` (`Ид_клиента`) ); INSERT INTO `Заказ` VALUES ("1", "2025-05-08 18:00", 0.00, "наличные", "1", TRUE), ("2", "2025-05-08 18:23", 0.00, "онлайн", "2", FALSE), ("3", "2025-05-08 19:15", 0.00, "онлайн", "3", FALSE); CREATE TABLE `Состав_заказа` ( `Ид_заказа` VARCHAR(10) NOT NULL, `Ид_пиццы` VARCHAR(10) NOT NULL, `Количество` INT NOT NULL, CONSTRAINT `ПК_СОСТ` PRIMARY KEY (`Ид_заказа`, `Ид_пиццы`), CONSTRAINT `ВК_СОСТ_ПИЦЦА` FOREIGN KEY (`Ид_пиццы`) REFERENCES `Пицца` (`Ид_пиццы`), CONSTRAINT `ВК_СОСТ_ЗАКАЗ` FOREIGN KEY (`Ид_заказа`) REFERENCES `Заказ` (`Ид_заказа`) ); INSERT INTO `Состав_заказа` VALUES ("1", "PZ00000002", 1), ("2", "PZ00000001", 1), ("2", "PZ00000003", 2), ("3", "PZ00000003", 1); SELECT * FROM `Состав_заказа`; UPDATE `Заказ` SET `Стоимость` = ( SELECT SUM(Пицца.Цена * Состав_заказа.Количество) FROM Состав_заказа JOIN Пицца ON Состав_заказа.Ид_пиццы = Пицца.Ид_пиццы WHERE Состав_заказа.Ид_заказа = `Заказ`.Ид_заказа); SELECT Заказ.Ид_заказа, Клиент.Фамилия, Пицца.Наименование, Пицца.Цена, Состав_заказа.Количество, (Пицца.Цена * Состав_заказа.Количество) AS Сумма, Заказ.Способ_оплаты FROM Заказ LEFT JOIN Клиент ON Заказ.Ид_клиента = Клиент.Ид_клиента LEFT JOIN Состав_заказа ON Заказ.Ид_заказа = Состав_заказа.Ид_заказа LEFT JOIN Пицца ON Состав_заказа.Ид_пиццы = Пицца.Ид_пиццы; SELECT Состав_заказа.Ид_заказа, SUM(Пицца.Цена * Состав_заказа.Количество) AS Итоговая_сумма FROM Состав_заказа LEFT JOIN Пицца ON Состав_заказа.Ид_пиццы = Пицца.Ид_пиццы GROUP BY Состав_заказа.Ид_заказа; CREATE TABLE `Адрес_доставки` ( `Ид_адреса` VARCHAR(10) NOT NULL PRIMARY KEY, `Ид_клиента` VARCHAR(10) NOT NULL, `Город` VARCHAR (50) NOT NULL, `Улица` VARCHAR (50) NOT NULL, `Дом` VARCHAR (50) NOT NULL, `Корпус` VARCHAR (50) NULL, `Тип` ENUM("многоквартирный дом", "частный дом", "организация") NOT NULL, `Квартира` VARCHAR (50) NULL, `Подъезд` VARCHAR (50) NULL, `Этаж` VARCHAR (50) NULL, `Код двери` VARCHAR (150) NULL, CHECK ( (`Тип` != "многоквартирный дом") OR (`Квартира` IS NOT NULL AND `Квартира` <> '') ), CHECK ( (`Тип` != "частный дом") OR (`Подъезд` IS NULL AND `Этаж` IS NULL) ), CONSTRAINT `ВК_АДРЕС_КЛИЕНТ` FOREIGN KEY (`Ид_клиента`) REFERENCES `Клиент` (`Ид_клиента`) ); INSERT INTO `Адрес_доставки` VALUES ("1", "1", "Уфа", "Ленина улица", "10", NULL, "многоквартирный дом", "35", "1", "5", "1234"), ("2", "2", "Уфа", "Гагарина улица", "20", "3", "многоквартирный дом", "45", "2", "8", "5678"), ("3", "3", "Уфа", "Кавказская улица", "15", NULL, "частный дом", NULL, NULL, NULL, NULL), ("4", "1", "Уфа", "Лесотехникум", "5", "2", "многоквартирный дом", "12", "3", "4", "9101"), ("5", "2", "Уфа", "Пушкина улица", "3", NULL, "частный дом", NULL, NULL, NULL, NULL), ("6", "3", "Уфа", "Чернышевского улица", "8", "1", "многоквартирный дом", "22", "1", "3", "1122"), ("7", "1", "Уфа", "Степана Разина улица", "7", "1", "организация", NULL, NULL, NULL, NULL), ("8", "2", "Уфа", "Кирова улица", "18", NULL, "частный дом", NULL, NULL, NULL, NULL), ("9", "3", "Уфа", "Бульвар Ибрагимова", "2", "4", "многоквартирный дом", "10", "4", "6", "3344"), ("10", "1", "Уфа", "Тукаева улица", "14", NULL, "организация", NULL, NULL, NULL, NULL); SELECT * FROM `Адрес_доставки`; CREATE TABLE `Доставка` ( `Ид_доставки` VARCHAR(10) NOT NULL PRIMARY KEY, `Ид_заказа` VARCHAR(10) NOT NULL, `Ид_адреса` VARCHAR(10) NOT NULL, `Ид_статуса` INT NOT NULL, `Дата_время_передачи_в_доставку` DATETIME NOT NULL, `Дата_время_доставки` DATETIME NOT NULL, `Комментарий` VARCHAR (100) NULL, CONSTRAINT `ВК_ДОСТ_ЗАКАЗ` FOREIGN KEY (`Ид_заказа`) REFERENCES `Заказ` (`Ид_заказа`), CONSTRAINT `ВК_ДОСТ_АДРЕС` FOREIGN KEY (`Ид_адреса`) REFERENCES `Адрес_доставки` (`Ид_адреса`), CONSTRAINT `ВК_ДОСТ_СТАТУС` FOREIGN KEY (`Ид_статуса`) REFERENCES `Статус_доставки` (`Ид_статуса`) ); INSERT INTO `Доставка` VALUES ("1", "1", "1", (SELECT `Ид_статуса` FROM `Статус_доставки` WHERE `Наименование` = "Доставлен"), "2025-05-08 19:00", "2025-05-08 19:30","Позвонить за 10 минут"), ("2", "2", "10", (SELECT `Ид_статуса` FROM `Статус_доставки` WHERE `Наименование` = "Доставлен") , "2025-05-08 19:23", "2025-05-08 19:57", NULL), ("3", "3", "5", (SELECT `Ид_статуса` FROM `Статус_доставки` WHERE `Наименование` = "Доставлен"), "2025-05-08 20:03", "2025-05-08 20:25", NULL); SELECT * FROM `Доставка`;

Stuck with a problem? Got Error? Ask AI support!

Copy Clear