Момотов ЛР12

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 4

МІНІСТЕРСТВО ОСВІТИ І НАУКИ УКРАЇНИ

ДЕРЖАВНИЙ УНІВЕРСИТЕТ «ОДЕСЬКА ПОЛІТЕХНИКА»


Інститут штучного інтелекту та робототехніки
Кафедра комп'ютерних систем

Лабораторна робота №12

З дисципліни: Організація баз даних


Тема: Тригери

Виконав студент групи: УК-211


Момотов Ілля

Оцінка:

Перевірила: ст.в Філатова Т.В.

Одеса 2023
CREATE TABLE `Trainers` (
`idT` int primary key auto_increment,
`Fullname` text not null,
`Phone` varchar(20) not null
);
CREATE TABLE `Sportsmen` (
`idS` int primary key auto_increment,
`Fullname` text not null,
`BirthDate` date not null,
`HomePhone` varchar(20),
`MobilePhone` varchar(20),
`idT` int,
foreign key (`idT`) references `Trainers`(`idT`)
);
CREATE TABLE `Competitions` (
`idC` int primary key auto_increment,
`Title` text not null,
`Date` date not null,
`MinimalAge` date not null
);
CREATE TABLE `CompetitionsSportsmen` (
`idC` int,
`idS` int,
`Score` int,
`Place` int,
primary key(`idC`, `idS`)
);
INSERT INTO `Trainers`(`Fullname`, `Phone`) VALUES
('Петронко Василь', '097837748'),
('Василенко Олена', '0994884845'),
('Конушенко Петро', '0996737284');
INSERT INTO `Sportsmen`(`Fullname`, `BirthDate`, `HomePhone`,
`MobilePhone`, `idT`) VALUES
('Іван Іваненко', '1990-05-10', '777777777', NULL, 1),
('Олена Смирнова', '1985-09-15', NULL, '8888888888', 1),
('Олексій Кравчук', '1992-02-20', NULL, NULL, 2),
('Марія Васильєва', '1994-07-25', '1234567890', '1234567890', 3),
('Дмитро Сидоров', '1988-11-30', '2345678901', '2345678901', 2),
('Анна Коваленко', '1991-06-05', '3456789012', '3456789012', 3);
INSERT INTO `Competitions`(`Title`, `Date`, `MinimalAge`) VALUES
('Біг', '2022-05-29', '1990-01-01'),
('Стрибки', '2022-05-29', '1988-01-01'),
('Плавання', '2023-05-29', '1992-01-01');
INSERT INTO `CompetitionsSportsmen` VALUES
(3, 1, 100, 1),
(3, 5, 90, 2),
(3, 2, 80, 3),
(3, 6, 79, 4),
(1, 5, 100, 1),
(1, 2, 90, 2),
(2, 2, 100, 1);

1. Тригер, що викликається після нового запису


CREATE TRIGGER AddNewSportsman AFTER INSERT ON Trainers
FOR EACH ROW BEGIN
INSERT INTO Sportsmen(Fullname, BirthDate, HomePhone, MobilePhone,
idT) VALUES
('Новий спортсмен', '2000-01-01', '0', '0', NEW.idT);
END;
INSERT INTO Trainers VALUES
(4, 'Новий тренер', '0');

2. Тригер, що викликається перед видаленням запису з таблиці


CREATE TRIGGER DeleteTrainerSportsmen BEFORE DELETE ON Trainers
FOR EACH ROW BEGIN
DELETE FROM Sportsmen WHERE idT = OLD.idT;
END;
DELETE FROM Trainers WHERE idT = 4;

You might also like