### 1. CREATE: Добавление нового сотрудника
INSERT INTO employees (first_name, last_name, department)
VALUES ('Имя', 'Фамилия', 'Отдел');
### 2. READ: Проверка наличия сотрудника
SELECT * FROM employees
WHERE first_name = 'Имя' AND last_name = 'Фамилия' AND department = 'Отдел';
### 3. DELETE: Удаление сотрудника
DELETE FROM employees
WHERE first_name = 'Имя' AND last_name = 'Фамилия' AND department = 'Отдел';
-- Проверка, что запись удалена
SELECT * FROM employees
WHERE first_name = 'Имя' AND last_name = 'Фамилия' AND department = 'Отдел';
### 4. Хранимая процедура для добавления книги
#### Создание процедуры
CREATE PROCEDURE AddBook(
IN p_author VARCHAR(255),
IN p_name VARCHAR(255),
IN p_year_of_issue INT
)
BEGIN
INSERT INTO Books (Author, Name, Year_of_issue)
VALUES (p_author, p_name, p_year_of_issue);
END;
#### Вызов процедуры
CALL AddBook('Автор', 'Название книги', 2024);
### 5. Хранимая процедура для резервирования билетов
#### Создание процедуры
CREATE PROCEDURE ReserveTickets(
IN p_event_id INT,
IN p_tickets_to_book INT
)
BEGIN
DECLARE available_tickets INT;
-- Получаем количество доступных билетов
SELECT total_tickets - booked_tickets INTO available_tickets
FROM Events
WHERE id = p_event_id;
-- Проверяем наличие достаточного количества билетов
IF available_tickets >= p_tickets_to_book THEN
-- Резервируем билеты
UPDATE Events
SET booked_tickets = booked_tickets + p_tickets_to_book
WHERE id = p_event_id;
SELECT 'Резервирование прошло успешно!' AS message;
ELSE
SELECT 'Извините, билетов недостаточно' AS message;
END IF;
-- Обработка ошибок
DECLARE EXIT HANDLER FOR SQLEXCEPTION
BEGIN
-- Здесь можно добавить код для обработки ошибок
SELECT 'Произошла ошибка при резервировании билетов' AS error_message;
END;
END;
Создайте запрос для проверки наличия (READ) сотрудника, которого вы добавили в первом запросе.
Создайте запрос для удаления (DELETE) сотрудника из первого запроса и используйте связанную операцию, чтобы убедиться, что данной записи в таблице больше нет.
Создайте хранимую процедуру с параметрами на добавление новой записи в таблицу с книгами. Таблица содержит информацию об авторе книги, ее названии и о годе выпуска (таблица Books, колонки Author, Name, Year_of_issue).
Создайте запрос на вызов процедуры из первого пункта, используя значения параметров.
Допустим, у вас есть база данных для организации мероприятий и бронирования билетов с таблицей Events, которая хранит информацию о мероприятиях и доступном количестве билетов, и полями id, name, total_tickets, booked_tickets. Создайте хранимую процедуру, которая проверяет наличие достаточного количества доступных билетов и делает следующее:
Если есть достаточное количество билетов, резервирует указанное количество билетов, обновив соответствующее поле в таблице Events, и выводит сообщение «Резервирование прошло успешно!».
Если билетов недостаточно, выдает сообщение «Извините, билетов недостаточно».
Обработайте возможные ошибки, используя блок EXCEPTION.