Untitled
unknown
mysql
2 years ago
4.5 kB
5
Indexable
-- Створення таблиці "Клієнти"
CREATE TABLE Клієнти (
Id INT PRIMARY KEY,
ПІБ VARCHAR(255),
Посвідчення_водія VARCHAR(255),
Дата_отримання_посвідчення_водія DATE
);
-- Створення таблиці "Моделі"
CREATE TABLE Моделі (
Id INT PRIMARY KEY,
Назва_моделі VARCHAR(255),
Марка VARCHAR(255),
Ціна_за_день_оренди DECIMAL(10, 2),
Місткість INT,
Тип_кузова VARCHAR(255)
);
-- Створення таблиці "Автомобілі"
CREATE TABLE Автомобілі (
Id INT PRIMARY KEY,
Держномер VARCHAR(20),
Рік_випуску INT,
Колір VARCHAR(255),
Стан VARCHAR(255),
Пробіг INT,
Модель_Id INT,
FOREIGN KEY (Модель_Id) REFERENCES Моделі(Id)
);
-- Створення таблиці "Договори_на_оренду"
CREATE TABLE Договори_на_оренду (
Id INT PRIMARY KEY,
Клієнт_Id INT,
Автомобіль_Id INT,
Дата_укладення_договору DATETIME,
Тривалість_договору NUMERIC(3, 0),
Вартість_договору DECIMAL(10, 2),
Дата_повернення DATETIME,
FOREIGN KEY (Клієнт_Id) REFERENCES Клієнти(Id),
FOREIGN KEY (Автомобіль_Id) REFERENCES Автомобілі(Id)
);
-- Перевірка на термін дії водійського посвідчення
DELIMITER //
CREATE TRIGGER Перевірка_терміну_посвідчення
BEFORE INSERT ON Договори_на_оренду
FOR EACH ROW
BEGIN
DECLARE дія DATE;
SELECT Дата_отримання_посвідчення_водія INTO дія FROM Клієнти WHERE Id = NEW.Клієнт_Id;
IF DATE_ADD(дія, INTERVAL 10 YEAR) < NOW() THEN
SIGNAL SQLSTATE '45000' SET MESSAGE_TEXT = 'Термін дії посвідчення закінчився';
END IF;
END;
//
DELIMITER ;
ALTER TABLE Клієнти
ADD COLUMN Новий_стовпець VARCHAR(255);
ALTER TABLE Моделі
MODIFY COLUMN Ціна_за_день_оренди DECIMAL(12, 2);
UPDATE Автомобілі
SET Стан = 'В хорошому стані'
WHERE Id = 1;
DELETE FROM Договори_на_оренду
WHERE Клієнт_Id = 2 AND Автомобіль_Id = 1;
-- Вставка даних в таблицю "Клієнти"
INSERT INTO Клієнти (Id, ПІБ, Посвідчення_водія, Дата_отримання_посвідчення_водія)
VALUES
(1, 'Іванов Іван Іванович', 'AB123456', '2020-01-01'),
(2, 'Петров Петро Петрович', 'CD789012', '2015-03-15'),
(3, 'Сидоров Сидір Сидорович', 'EF345678', '2019-06-20');
-- Вставка даних в таблицю "Моделі"
INSERT INTO Моделі (Id, Назва_моделі, Марка, Ціна_за_день_оренди, Місткість, Тип_кузова)
VALUES
(1, 'Civic', 'Honda', 50.00, 5, 'Седан'),
(2, 'Camry', 'Toyota', 60.00, 5, 'Седан'),
(3, 'X5', 'BMW', 80.00, 7, 'Позашляховик');
-- Вставка даних в таблицю "Автомобілі"
INSERT INTO Автомобілі (Id, Держномер, Рік_випуску, Колір, Стан, Пробіг, Модель_Id)
VALUES
(1, 'АВ1234ВС', 2020, 'Чорний', 'В ідеальному стані', 10000, 1),
(2, 'ВС5678АВ', 2018, 'Сріблястий', 'Технічно справний', 15000, 2),
(3, 'СВ9012ІВ', 2019, 'Синій', 'Є невеликі пошкодження', 20000, 3);
-- Вставка даних в таблицю "Договори_на_оренду"
INSERT INTO Договори_на_оренду (Id, Клієнт_Id, Автомобіль_Id, Дата_укладення_договору, Тривалість_договору, Вартість_договору, Дата_повернення)
VALUES
(1, 1, 2, '2023-01-01 08:00:00', 7, 420.00, '2024-01-08 10:00:00'),
(2, 2, 1, '2023-02-15 12:00:00', 5, 300.00, '2024-02-20 15:30:00'),
(3, 3, 3, '2023-03-20 10:30:00', 10, 800.00, '2024-02-20 15:30:00');
SELECT * FROM Клієнти;
SELECT * FROM Моделі;
SELECT * FROM Автомобілі;
SELECT * FROM Договори_на_оренду;
Editor is loading...
Leave a Comment