Загрузка данных


USE user333_db;
GO

-- 0. Удаляем таблицы в безопасном порядке, если они существовали ранее
DROP TABLE IF EXISTS Маршрут2;
DROP TABLE IF EXISTS Заказ2;
DROP TABLE IF EXISTS Транспорт2;
DROP TABLE IF EXISTS Клиент2;
DROP TABLE IF EXISTS Водила;
GO

-- 1. Создание таблицы: Водила
CREATE TABLE Водила (
    Driver_id INT IDENTITY(1,1) PRIMARY KEY,
    FIO NVARCHAR(MAX) NOT NULL, -- Тип text/nvarchar(max) по схеме
    Phone_Number INT NOT NULL,  -- Тип int по схеме
    Driver_License NVARCHAR(50) NOT NULL,
    Status NVARCHAR(50) NOT NULL
);
GO

-- 2. Создание таблицы: Клиент2
CREATE TABLE Клиент2 (
    Client_id INT IDENTITY(1,1) PRIMARY KEY,
    Company_Name NVARCHAR(50) NOT NULL,
    Phone_Number NVARCHAR(50) NOT NULL,
    Email NVARCHAR(50) NOT NULL
);
GO

-- 3. Создание таблицы: Транспорт2
CREATE TABLE Транспорт2 (
    Transport_id INT IDENTITY(1,1) PRIMARY KEY,
    Registration_Plate NVARCHAR(50) NOT NULL,
    Mark NVARCHAR(30) NOT NULL,
    Date_TO DATE NOT NULL
);
GO

-- 4. Создание таблицы: Заказ2
CREATE TABLE Заказ2 (
    Order_id INT IDENTITY(1,1) PRIMARY KEY,
    Client_id INT NOT NULL,
    Date DATE NOT NULL,
    Weight DECIMAL(16,0) NOT NULL,
    Status NVARCHAR(MAX) NOT NULL, -- Тип text по схеме
    
    CONSTRAINT FK_Заказ2_Клиент2 FOREIGN KEY (Client_id) 
        REFERENCES Клиент2(Client_id) ON DELETE CASCADE
);
GO

-- 5. Создание таблицы: Маршрут2
CREATE TABLE Маршрут2 (
    Route_id INT IDENTITY(1,1) PRIMARY KEY,
    Driver_id INT NOT NULL,
    Order_id INT NOT NULL,
    Transport_id INT NOT NULL,
    Dateofstart DATE NOT NULL,
    Dateofend DATE NOT NULL,
    Price NVARCHAR(50) NOT NULL, -- Тип nvarchar(50) по схеме
    
    CONSTRAINT FK_Маршрут2_Водила FOREIGN KEY (Driver_id) REFERENCES Водила(Driver_id),
    CONSTRAINT FK_Маршрут2_Заказ2 FOREIGN KEY (Order_id) REFERENCES Заказ2(Order_id) ON DELETE CASCADE,
    CONSTRAINT FK_Маршрут2_Транспорт2 FOREIGN KEY (Transport_id) REFERENCES Транспорт2(Transport_id)
);
GO


-- =========================================================================
-- НАПОЛНЕНИЕ ТАБЛИЦ ТЕСТОВЫМИ ДАННЫМИ (По 5-6 записей в каждой)
-- =========================================================================

-- 1. Заполнение таблицы: Водила
INSERT INTO Водила (FIO, Phone_Number, Driver_License, Status) VALUES
(N'Иванов Иван Иванович', 5551122, '77AA123456', N'Активен'),
(N'Петров Петр Петрович', 5553344, '77BB654321', N'Активен'),
(N'Сидоров Сидор Сидорович', 5555566, '77CC789012', N'В отпуске'),
(N'Алексеев Алексей Алексеевич', 5557788, '77DD345678', N'Активен'),
(N'Николаев Николай Николаевич', 5559900, '77EE901234', N'Больничный');
GO

-- 2. Заполнение таблицы: Клиент2
INSERT INTO Клиент2 (Company_Name, Phone_Number, Email) VALUES
(N'ООО МегаТорг', '+7 (495) 111-22-33', 'info@megatorg.ru'),
(N'АО Вектор', '+7 (495) 222-33-44', 'contact@vector.ru'),
(N'ИП Баранов', '+7 (999) 333-44-55', 'baranov@mail.ru'),
(N'ООО СтройСнаб', '+7 (812) 444-55-66', 'stroy@snab.ru'),
(N'ПАО Прогресс', '+7 (800) 555-35-35', 'hr@progress.ru');
GO

-- 3. Заполнение таблицы: Транспорт2
INSERT INTO Транспорт2 (Registration_Plate, Mark, Date_TO) VALUES
('А111АА77', 'Kamaz', '2026-05-12'),
('В222ВВ77', 'Volvo', '2026-06-15'),
('С333СС77', 'Scania', '2026-04-20'),
('Е444ЕЕ77', 'MAN', '2026-08-01'),
('К555КК77', 'Mercedes', '2026-07-10');
GO

-- 4. Заполнение таблицы: Заказ2
INSERT INTO Заказ2 (Client_id, Date, Weight, Status) VALUES
(1, '2026-09-01', 5000, N'Доставлен'),
(2, '2026-09-05', 12000, N'В пути'),
(3, '2026-09-10', 1500, N'Оформлен'),
(4, '2026-09-12', 22000, N'В пути'),
(5, '2026-09-15', 8500, N'Отменен'),
(1, '2026-09-20', 4000, N'Оформлен');
GO

-- 5. Заполнение таблицы: Маршрут2
INSERT INTO Маршрут2 (Driver_id, Order_id, Transport_id, Dateofstart, Dateofend, Price) VALUES
(1, 1, 1, '2026-09-01', '2026-09-03', N'50000 руб'),
(2, 2, 2, '2026-09-05', '2026-09-08', N'120000 руб'),
(4, 3, 3, '2026-09-10', '2026-09-11', N'25000 руб'),
(2, 4, 4, '2026-09-12', '2026-09-16', N'180000 руб'),
(1, 6, 5, '2026-09-20', '2026-09-22', N'45000 руб');
GO