Загрузка данных
/* =========================================================
ЗАДАНИЕ №1
Прокат автотранспортных средств
Все таблицы имеют суффикс 8
========================================================= */
/* =========================================================
1. COUNTRY8
========================================================= */
CREATE TABLE Country8
(
CountryCode INT PRIMARY KEY,
CountryName NVARCHAR(100) NOT NULL
);
/* =========================================================
2. CLIENT8
========================================================= */
CREATE TABLE Client8
(
ClientCode INT PRIMARY KEY,
LastName NVARCHAR(50) NOT NULL,
FirstName NVARCHAR(50) NOT NULL,
MiddleName NVARCHAR(50),
City NVARCHAR(100) NOT NULL,
Address NVARCHAR(200),
DrivingLicense NVARCHAR(50) NOT NULL,
CountryCode INT NOT NULL,
CONSTRAINT FK_Client8_Country8
FOREIGN KEY (CountryCode)
REFERENCES Country8(CountryCode)
);
/* =========================================================
3. RENTALOFFICE8
========================================================= */
CREATE TABLE RentalOffice8
(
OfficeCode INT PRIMARY KEY,
City NVARCHAR(100) NOT NULL,
Address NVARCHAR(200),
CountryCode INT NOT NULL,
CONSTRAINT FK_RentalOffice8_Country8
FOREIGN KEY (CountryCode)
REFERENCES Country8(CountryCode)
);
/* =========================================================
4. CATEGORY8
========================================================= */
CREATE TABLE Category8
(
CategoryCode INT PRIMARY KEY,
CategoryName NVARCHAR(100) NOT NULL,
NumberOfSeats INT NOT NULL
);
/* =========================================================
5. CURRENCY8
========================================================= */
CREATE TABLE Currency8
(
CurrencyCode INT PRIMARY KEY,
CurrencyName NVARCHAR(100) NOT NULL,
CountryCode INT NOT NULL,
CONSTRAINT FK_Currency8_Country8
FOREIGN KEY (CountryCode)
REFERENCES Country8(CountryCode)
);
/* =========================================================
6. VEHICLE8
========================================================= */
CREATE TABLE Vehicle8
(
VehicleCode INT PRIMARY KEY,
CategoryCode INT NOT NULL,
RentalPrice DECIMAL(12,2) NOT NULL,
Brand NVARCHAR(50) NOT NULL,
Model NVARCHAR(50) NOT NULL,
Color NVARCHAR(30) NOT NULL,
LicensePlate NVARCHAR(20) NOT NULL,
CurrencyCode INT NOT NULL,
CONSTRAINT FK_Vehicle8_Category8
FOREIGN KEY (CategoryCode)
REFERENCES Category8(CategoryCode),
CONSTRAINT FK_Vehicle8_Currency8
FOREIGN KEY (CurrencyCode)
REFERENCES Currency8(CurrencyCode),
CONSTRAINT UQ_Vehicle8_LicensePlate
UNIQUE (LicensePlate)
);
/* =========================================================
7. RENTALAGREEMENT8
========================================================= */
CREATE TABLE RentalAgreement8
(
AgreementNumber INT PRIMARY KEY,
RentalOfficeCode INT NOT NULL,
ReturnOfficeCode INT NOT NULL,
RegistrationDate DATE NOT NULL,
RentalStartDate DATE NOT NULL,
RentalPeriod INT NOT NULL,
RentalEndDate DATE NOT NULL,
ActualRentalEndDate DATE,
Manager NVARCHAR(100),
Phone NVARCHAR(30),
IsCancelled BIT NOT NULL DEFAULT 0,
ClientCode INT NOT NULL,
VehicleCode INT NOT NULL,
CONSTRAINT FK_RentalAgreement8_RentalOffice8
FOREIGN KEY (RentalOfficeCode)
REFERENCES RentalOffice8(OfficeCode),
CONSTRAINT FK_RentalAgreement8_ReturnOffice8
FOREIGN KEY (ReturnOfficeCode)
REFERENCES RentalOffice8(OfficeCode),
CONSTRAINT FK_RentalAgreement8_Client8
FOREIGN KEY (ClientCode)
REFERENCES Client8(ClientCode),
CONSTRAINT FK_RentalAgreement8_Vehicle8
FOREIGN KEY (VehicleCode)
REFERENCES Vehicle8(VehicleCode)
);
/* =========================================================
8. PAYMENTDOCUMENT8
========================================================= */
CREATE TABLE PaymentDocument8
(
DocumentNumber INT PRIMARY KEY,
AgreementNumber INT NOT NULL,
DocumentType NVARCHAR(50) NOT NULL,
PaymentDate DATE NOT NULL,
Amount DECIMAL(12,2) NOT NULL,
CurrencyCode INT NOT NULL,
CONSTRAINT FK_PaymentDocument8_Agreement8
FOREIGN KEY (AgreementNumber)
REFERENCES RentalAgreement8(AgreementNumber),
CONSTRAINT FK_PaymentDocument8_Currency8
FOREIGN KEY (CurrencyCode)
REFERENCES Currency8(CurrencyCode)
);
/* =========================================================
9. AGREEMENTDETAIL8
========================================================= */
CREATE TABLE AgreementDetail8
(
AgreementNumber INT NOT NULL,
RecordNumber INT NOT NULL,
Coefficient DECIMAL(10,4) NOT NULL,
CONSTRAINT PK_AgreementDetail8
PRIMARY KEY (AgreementNumber, RecordNumber),
CONSTRAINT FK_AgreementDetail8_Agreement8
FOREIGN KEY (AgreementNumber)
REFERENCES RentalAgreement8(AgreementNumber),
CONSTRAINT FK_AgreementDetail8_Condition8
FOREIGN KEY (RecordNumber)
REFERENCES AdditionalRentalCondition8(RecordNumber)
);
/* =========================================================
10. ADDITIONALRENTALCONDITION8
========================================================= */
CREATE TABLE AdditionalRentalCondition8
(
RecordNumber INT PRIMARY KEY,
ConditionDescription NVARCHAR(500) NOT NULL,
CurrencyCode INT NOT NULL,
Cost DECIMAL(12,2) NOT NULL,
CONSTRAINT FK_AdditionalRentalCondition8_Currency8
FOREIGN KEY (CurrencyCode)
REFERENCES Currency8(CurrencyCode)
);
/* =========================================================
11. CURRENCYRATE8
========================================================= */
CREATE TABLE CurrencyRate8
(
RecordNumber INT PRIMARY KEY,
CurrencyCode INT NOT NULL,
RateDate DATE NOT NULL,
ExchangeRate DECIMAL(12,4) NOT NULL,
CONSTRAINT FK_CurrencyRate8_Currency8
FOREIGN KEY (CurrencyCode)
REFERENCES Currency8(CurrencyCode)
);
/* =========================================================
ЗАПОЛНЕНИЕ ТАБЛИЦ
========================================================= */
/* =========================================================
1. COUNTRY8 — 5 записей
========================================================= */
INSERT INTO Country8
(CountryCode, CountryName)
VALUES
(1, N'Россия'),
(2, N'Беларусь'),
(3, N'Казахстан'),
(4, N'Армения'),
(5, N'Грузия');
/* =========================================================
2. CLIENT8 — 5 записей
========================================================= */
INSERT INTO Client8
(ClientCode, LastName, FirstName, MiddleName,
City, Address, DrivingLicense, CountryCode)
VALUES
(1, N'Иванов', N'Алексей', N'Сергеевич',
N'Ярославль', N'ул. Свободы, д. 15, кв. 24',
N'7700123456', 1),
(2, N'Петров', N'Дмитрий', N'Андреевич',
N'Москва', N'ул. Тверская, д. 21, кв. 18',
N'7700234567', 1),
(3, N'Смирнова', N'Елена', N'Викторовна',
N'Минск', N'ул. Козлова, д. 8, кв. 45',
N'7700345678', 2),
(4, N'Ильин', N'Максим', N'Олегович',
N'Астана', N'ул. Сарыарка, д. 32, кв. 11',
N'7700456789', 3),
(5, N'Кузнецов', N'Роман', N'Игоревич',
N'Ереван', N'ул. Абовяна, д. 17, кв. 9',
N'7700567890', 4);
/* =========================================================
3. RENTALOFFICE8 — 5 записей
========================================================= */
INSERT INTO RentalOffice8
(OfficeCode, City, Address, CountryCode)
VALUES
(1, N'Москва', N'ул. Ленинградская, д. 10', 1),
(2, N'Ярославль', N'ул. Советская, д. 25', 1),
(3, N'Минск', N'пр. Независимости, д. 40', 2),
(4, N'Астана', N'ул. Абая, д. 15', 3),
(5, N'Ереван', N'ул. Маштоца, д. 27', 4);
/* =========================================================
4. CATEGORY8 — 5 записей
========================================================= */
INSERT INTO Category8
(CategoryCode, CategoryName, NumberOfSeats)
VALUES
(1, N'Эконом', 2),
(2, N'Стандарт', 4),
(3, N'Семейный', 5),
(4, N'Минивэн', 7),
(5, N'Премиум', 7);
/* =========================================================
5. CURRENCY8 — 5 записей
========================================================= */
INSERT INTO Currency8
(CurrencyCode, CurrencyName, CountryCode)
VALUES
(1, N'Российский рубль', 1),
(2, N'Белорусский рубль', 2),
(3, N'Казахстанский тенге', 3),
(4, N'Армянский драм', 4),
(5, N'Грузинский лари', 5);
/* =========================================================
6. VEHICLE8 — 5 записей
========================================================= */
INSERT INTO Vehicle8
(VehicleCode, CategoryCode, RentalPrice,
Brand, Model, Color, LicensePlate, CurrencyCode)
VALUES
(1, 1, 3500.00,
N'Лада', N'Гранта', N'Красный', N'А123АА76', 1),
(2, 2, 4800.00,
N'Kia', N'Rio', N'Белый', N'В456ВВ77', 1),
(3, 3, 6200.00,
N'Toyota', N'Corolla', N'С789СС76', N'Серебристый', N'С789СС76', 1),
(4, 4, 8500.00,
N'Volkswagen', N'Multivan', N'Черный', N'Е111ЕЕ77', 1),
(5, 5, 12000.00,
N'Mercedes-Benz', N'V-Class', N'Черный', N'К222КК77', 1);
/* =========================================================
7. RENTALAGREEMENT8 — 5 записей
========================================================= */
INSERT INTO RentalAgreement8
(AgreementNumber,
RentalOfficeCode,
ReturnOfficeCode,
RegistrationDate,
RentalStartDate,
RentalPeriod,
RentalEndDate,
ActualRentalEndDate,
Manager,
Phone,
IsCancelled,
ClientCode,
VehicleCode)
VALUES
(1001,
2,
1,
'2026-09-01',
'2026-09-02',
5,
'2026-09-07',
'2026-09-07',
N'Соколов Андрей',
N'+7 901 123-45-67',
0,
1,
1),
(1002,
1,
1,
'2026-09-02',
'2026-09-03',
7,
'2026-09-10',
NULL,
N'Морозова Ольга',
N'+7 902 234-56-78',
0,
2,
2),
(1003,
3,
3,
'2026-08-25',
'2026-08-26',
4,
'2026-08-30',
'2026-08-30',
N'Крылов Павел',
N'+375 29 345-67-89',
0,
3,
3),
(1004,
4,
4,
'2026-09-01',
'2026-09-04',
10,
'2026-09-14',
NULL,
N'Волков Сергей',
N'+7 705 456-78-90',
0,
4,
4),
(1005,
1,
2,
'2026-08-20',
'2026-08-21',
3,
'2026-08-24',
'2026-08-24',
N'Орлова Мария',
N'+7 903 567-89-01',
0,
5,
5);
/* =========================================================
8. PAYMENTDOCUMENT8 — 5 записей
========================================================= */
INSERT INTO PaymentDocument8
(DocumentNumber,
AgreementNumber,
DocumentType,
PaymentDate,
Amount,
CurrencyCode)
VALUES
(5001, 1001, N'Банковская карта', '2026-09-02', 17500.00, 1),
(5002, 1002, N'Наличные', '2026-09-03', 33600.00, 1),
(5003, 1003, N'Банковская карта', '2026-08-26', 24800.00, 2),
(5004, 1004, N'Банковская карта', '2026-09-04', 85000.00, 3),
(5005, 1005, N'Наличные', '2026-08-21', 36000.00, 1);
/* =========================================================
9. ADDITIONALRENTALCONDITION8 — 5 записей
========================================================= */
INSERT INTO AdditionalRentalCondition8
(RecordNumber, ConditionDescription, CurrencyCode, Cost)
VALUES
(1, N'Детское кресло', 1, 800.00),
(2, N'Дополнительный водитель', 1, 1500.00),
(3, N'Навигатор', 1, 500.00),
(4, N'Доставка автомобиля по адресу клиента', 1, 2500.00),
(5, N'Страхование автомобиля', 1, 3000.00);
/* =========================================================
10. AGREEMENTDETAIL8 — 5 записей
========================================================= */
INSERT INTO AgreementDetail8
(AgreementNumber, RecordNumber, Coefficient)
VALUES
(1001, 1, 1.0000),
(1001, 2, 1.0000),
(1002, 3, 1.0000),
(1004, 4, 1.0000),
(1005, 5, 1.0000);
/* =========================================================
11. CURRENCYRATE8 — 5 записей
========================================================= */
INSERT INTO CurrencyRate8
(RecordNumber, CurrencyCode, RateDate, ExchangeRate)
VALUES
(1, 1, '2026-09-01', 1.0000),
(2, 2, '2026-09-01', 23.4500),
(3, 3, '2026-09-01', 0.2100),
(4, 4, '2026-09-01', 0.2200),
(5, 5, '2026-09-01', 28.5000);