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

Помогите составить SQL-запросы

Мария Янина Ученик (146), открыт 1 неделю назад
Создайте запрос для проверки возможности (CREATE) добавления нового сотрудника с данными «имя», «фамилия», «отдел» в таблицу сотрудников (employees).
Создайте запрос для проверки наличия (READ) сотрудника, которого вы добавили в первом запросе.
Создайте запрос для удаления (DELETE) сотрудника из первого запроса и используйте связанную операцию, чтобы убедиться, что данной записи в таблице больше нет.


Создайте хранимую процедуру с параметрами на добавление новой записи в таблицу с книгами. Таблица содержит информацию об авторе книги, ее названии и о годе выпуска (таблица Books, колонки Author, Name, Year_of_issue).
Создайте запрос на вызов процедуры из первого пункта, используя значения параметров.
Допустим, у вас есть база данных для организации мероприятий и бронирования билетов с таблицей Events, которая хранит информацию о мероприятиях и доступном количестве билетов, и полями id, name, total_tickets, booked_tickets. Создайте хранимую процедуру, которая проверяет наличие достаточного количества доступных билетов и делает следующее:
Если есть достаточное количество билетов, резервирует указанное количество билетов, обновив соответствующее поле в таблице Events, и выводит сообщение «Резервирование прошло успешно!».
Если билетов недостаточно, выдает сообщение «Извините, билетов недостаточно».
Обработайте возможные ошибки, используя блок EXCEPTION.
1 ответ
♡$ⴎG@r₱u₷sყ♡ Искусственный Интеллект (157159) 1 неделю назад
 

### 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;


Похожие вопросы