Untitled

 avatar
unknown
mysql
2 years ago
6.7 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', '2020-06-20'),
    (4, 'Коваленко Костянтин Олександрович', 'GH012345', '2022-09-10'),
    (5, 'Михайленко Марія Володимирівна', 'IJ678901', '2015-12-05'),
    (6, 'Білоконь Ірина Василівна', 'KL234567', '2018-03-22'),
    (7, 'Олійник Олексій Володимирович', 'MN890123', '2020-07-18'),
    (8, 'Захарчук Зоя Михайлівна', 'OP456789', '2022-01-30'),
    (9, 'Кузнецов Кирило Ігорович', 'QR012345', '2023-04-14'),
    (10, 'Павленко Поліна Сергіївна', 'ST678901', '2017-08-07');


-- Вставка даних в таблицю "Моделі"
INSERT INTO Моделі (Id, Назва_моделі, Марка, Ціна_за_день_оренди, Місткість, Тип_кузова)
VALUES
    (1, 'Civic', 'Honda', 50.00, 5, 'Седан'),
    (2, 'Camry', 'Toyota', 60.00, 5, 'Седан'),
    (3, 'X5', 'BMW', 80.00, 7, 'Позашляховик'),
    (4, 'Accord', 'Honda', 55.00, 5, 'Купе'),
    (5, 'Corolla', 'Toyota', 55.00, 5, 'Хетчбек'),
    (6, '3 Series', 'BMW', 70.00, 5, 'Седан'),
    (7, 'Pilot', 'Honda', 75.00, 8, 'Позашляховик'),
    (8, 'RAV4', 'Toyota', 65.00, 5, 'Позашляховик'),
    (9, '5 Series', 'BMW', 75.00, 5, 'Седан'),
    (10, 'Fit', 'Honda', 45.00, 5, 'Хетчбек');


-- Вставка даних в таблицю "Автомобілі"
INSERT INTO Автомобілі (Id, Держномер, Рік_випуску, Колір, Стан, Пробіг, Модель_Id)
VALUES
    (1, 'АВ1234ВС', 2020, 'Чорний', 'В ідеальному стані', 10000, 1),
    (2, 'ВС5678АВ', 2018, 'Сріблястий', 'Технічно справний', 15000, 2),
    (3, 'СВ9012ІВ', 2019, 'Синій', 'Є невеликі пошкодження', 20000, 3),
    (4, 'АВ3456ВС', 2021, 'Білий', 'В ідеальному стані', 8000, 4),
    (5, 'ВС7890АВ', 2017, 'Червоний', 'Технічно справний', 25000, 5),
    (6, 'СВ1234ІВ', 2019, 'Сірий', 'Є дрібні подряпини', 18000, 6),
    (7, 'АВ6789ВС', 2020, 'Зелений', 'В ідеальному стані', 12000, 7),
    (8, 'ВС0123АВ', 2018, 'Чорний', 'Технічно справний', 22000, 8),
    (9, 'СВ4567ІВ', 2022, 'Сріблястий', 'Новий', 5000, 9),
    (10, 'АВ8901ВС', 2016, 'Чорний', 'Технічно справний', 30000, 10);


-- Вставка даних в таблицю "Договори_на_оренду"
INSERT INTO Договори_на_оренду (Id, Клієнт_Id, Автомобіль_Id, Дата_укладення_договору, Тривалість_договору, Вартість_договору, Дата_повернення)
VALUES
    (1, 1, 2, '2023-01-01 08:00:00', 7, 420.00, '2023-01-08 10:00:00'),
    (2, 2, 1, '2023-02-15 12:00:00', 5, 300.00, '2023-02-20 15:30:00'),
    (3, 3, 3, '2023-03-20 10:30:00', 10, 800.00, '2023-09-24 12:00:00'),
    (4, 4, 4, '2023-04-10 15:45:00', 3, 165.00, '2023-04-13 10:00:00'),
    (5, 5, 5, '2023-05-05 09:30:00', 6, 330.00, '2023-05-11 14:20:00'),
    (6, 6, 6, '2023-06-18 14:15:00', 8, 560.00, '2023-06-26 16:45:00'),
    (7, 7, 7, '2023-07-30 11:00:00', 5, 375.00, '2023-08-04 13:30:00'),
    (8, 8, 8, '2023-08-25 16:30:00', 7, 455.00, '2023-09-01 10:00:00'),
    (9, 9, 9, '2023-09-15 10:45:00', 9, 720.00, '2023-09-24 12:00:00'),
    (10, 10, 10, '2023-10-08 13:20:00', 4, 180.00, '2023-10-12 18:00:00');


SELECT * FROM Клієнти;
SELECT * FROM Моделі;
SELECT * FROM Автомобілі;
SELECT * FROM Договори_на_оренду;
Editor is loading...
Leave a Comment