Да. Для защиты будет хорошо, если заполнение соответствует таблице из задания.
Сначала типы авто:
INSERT INTO car_types(type_name, markup)
VALUES
('эконом', 50),
('бизнес', 100);
Водители:
INSERT INTO drivers(phone)
VALUES
('+7(999)111-11-11'),
('+7(999)444-44-44'),
('+7(999)222-22-22'),
('+7(999)333-33-33');
Автомобили:
INSERT INTO cars
(plate_number, type_id, tariff_km, tariff_min)
VALUES
('А111ВВ', 1, 5, 8),
('С444РР', 1, 5, 8),
('А222ВВ', 2, 6, 10),
('К333ТТ', 2, 6, 10);
Поездки:
INSERT INTO trips
(
trip_id,
start_time,
end_time,
distance_km,
status,
driver_id,
car_id
)
VALUES
(
'П1',
'2025-10-15 08:00:00',
'2025-10-15 08:30:00',
20,
'выполнена',
1,
1
),
(
'П2',
'2025-10-15 09:00:00',
'2025-10-15 09:20:00',
21,
'выполнена',
2,
2
),
(
'П3',
'2025-10-15 10:00:00',
'2025-10-15 11:10:00',
70,
'выполнена',
3,
3
),
(
'П4',
'2025-10-15 09:40:00',
'2025-10-15 10:20:00',
45,
'выполнена',
3,
3
),
(
'П5',
'2025-10-15 20:00:00',
'2025-10-15 20:55:00',
55,
'выполнена',
1,
1
),
(
'П6',
'2025-10-15 18:00:00',
'2025-10-15 18:30:00',
25,
'выполнена',
1,
1
),
(
'П7',
'2025-10-15 19:00:00',
'2025-10-15 19:40:00',
30,
'отменена',
1,
1
),
(
'П8',
'2025-10-16 09:40:00',
'2025-10-16 10:20:00',
45,
'выполнена',
4,
4
),
(
'П9',
'2025-10-16 18:00:00',
'2025-10-16 18:30:00',
25,
'выполнена',
2,
2
),
(
'П10',
'2025-10-16 19:00:00',
'2025-10-16 19:40:00',
30,
'отменена',
1,
1
);
После вставки данных вызови процедуру для расчёта стоимости:
CALL CalculateTripCost('П1');
CALL CalculateTripCost('П2');
CALL CalculateTripCost('П3');
CALL CalculateTripCost('П4');
CALL CalculateTripCost('П5');
CALL CalculateTripCost('П6');
CALL CalculateTripCost('П8');
CALL CalculateTripCost('П9');
Проверочные стоимости из таблицы должны получиться такие:
Поездка Стоимость
П1 390
П2 315
П3 1220
П4 770
П5 765
П6 415
П8 770
П9 415
(для отменённых П7 и П10 процедура сделает ROLLBACK и стоимость не запишется).
Единственное: в номерах машин на фото используются русские буквы (А111ВВ, С444РР и т.д.). В MySQL лучше хранить их как VARCHAR(10) в кодировке UTF-8, тогда проблем не будет.