Untitled
unknown
mysql
2 years ago
4.5 kB
4
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