DROP TABLE IF EXISTS client;
-- 1. Создаем таблицу клиентов
CREATE TABLE client (
id_client INT PRIMARY KEY,
name VARCHAR(50) NOT NULL,
table_number INT NOT NULL,
order_list TEXT,
number_phone VARCHAR(15)
);
-- Удаляем существующие процедуры, если они есть
DROP PROCEDURE IF EXISTS add_client;
DROP PROCEDURE IF EXISTS get_all_clients;
DROP PROCEDURE IF EXISTS find_client_by_table;
DROP PROCEDURE IF EXISTS update_client_order;
DELIMITER //
CREATE PROCEDURE add_client(
IN p_name VARCHAR(50),
IN p_table_number INT,
IN p_order_list TEXT,
IN p_number_phone VARCHAR(15))
BEGIN
INSERT INTO client (name, table_number, order_list, number_phone)
VALUES (p_name, p_table_number, p_order_list, p_number_phone);
SELECT 'Клиент добавлен успешно!' AS message;
END //
DELIMITER ;
-- 3. Процедура для просмотра всех клиентов
DELIMITER //
CREATE PROCEDURE get_all_clients()
BEGIN
SELECT id_client, name, table_number, order_list, number_phone
FROM client
ORDER BY name;
END //
DELIMITER ;
-- 4. Процедура для поиска клиента по номеру столика
DELIMITER //
CREATE PROCEDURE find_client_by_table(IN p_table_number INT)
BEGIN
SELECT id_client, name, table_number, order_list, number_phone
FROM client
WHERE table_number = p_table_number;
END //
DELIMITER ;
CALL add_client('Иванов Иван', 5, 'Стейк, Картофель фри, Кола', '+79151234567');
CALL add_client('Петрова Мария', 3, 'Салат Цезарь, Суп, Чай', '+79037654321');
CALL add_client('Сидоров Алексей', 7, 'Паста Карбонара, Вино', '+79259876543');
-- 7. Пример использования (вывод данных)
-- Просмотр всех клиентов
CALL get_all_clients();
-- Поиск клиента по номеру столика
CALL find_client_by_table(5);
-- Обновление заказа клиента
CALL update_client_order(1, 'Стейк, Картофель фри, Кола, Тирамису');
-- Проверка обновленных данных
CALL get_all_clients();