Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Почему скрипт не работает

MalaYa Ученик (111), на голосовании 3 недели назад
Gочему скрипт не работает после замены товара на Виноград?

Создать базу данных магазина из 2 таблиц - продукты
(товары) и категории товаров
Каждый товар принадлежит некоторой категории
Вставьте данные в таблицы (3-5 строк)
Попробовать UPDATE, DELETE:
Удалить товары с ценой выше 100
Изменить название и цену некоторому товар
Напишите скрипт, который заполнит БД
категориями и товарами
создастся 100 категорий и 5000 товаров
товары привязываются к категориям случайным образом. И случайным образом пусть выставляется цена
Используйте функцию RAND

CREATE DATABASE shop;

USE shop;

CREATE TABLE categories
(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);

CREATE TABLE products
(
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL,
price DECIMAL(10, 2) NOT NULL,
categoryId INT NOT NULL,
FOREIGN KEY (categoryId) REFERENCES categories(id)
);

INSERT INTO categories(name)
VALUES ('Drinks'), ('Fruits'), ('Vegatables'),
('Cereals'), ('Seafoods');

INSERT INTO products(name, price, categoryId)
VALUES ('Apple', 90, 2), ('Rice', 50, 4), ('Orange', 200, 2),
('Potato', 30, 3), ('Fish', 100, 5), ('Juise', 150, 1);

DELETE FROM products
WHERE price > 100;

UPDATE products
SET price = 200
WHERE id = 2;

UPDATE products
SET name = 'Grape'
WHERE id = 1;

-- Заполнение таблиц данными
-- Вставляем 100 категорий
DELIMITER $$
SET @categoryCount = 0;
WHILE @categoryCount < 100 DO
INSERT INTO Categories (name)
VALUES (CONCAT('Category ', @categoryCount));

SET @categoryCount = @categoryCount + 1;
END WHILE;

-- Вставляем 5000 товаров и привязываем их к категориям случайным образом
SET @productCount = 0;
WHILE @productCount < 5000 DO
INSERT INTO Products (name, price, category_id)
VALUES (
CONCAT('Product ', @productCount),
RAND() * 1000, -- Случайная цена от 0 до 1000
FLOOR(RAND() * 100) + 1 -- Случайная категория от 1 до 100
);

SET @productCount = @productCount + 1;
END WHILE;
END $$
DELIMITER ;
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (426229) 1 месяц назад
>Gочему скрипт не работает после замены товара на Виноград?
А как ты его запускаешь? Это единый кусок кода, его надо запускать полностью.
Похожие вопросы