Загрузка данных
/* =========================================================
ЗАДАНИЕ №1
ПРОКАТ АВТОТРАНСПОРТНЫХ СРЕДСТВ
МОЙ ВАРИАНТ
========================================================= */
/* =========================================================
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. 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)
);
/* =========================================================
8. 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)
);
/* =========================================================
9. 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)
);
/* =========================================================
10. 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)
);
/* =========================================================
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)
);
/* =========================================================
ЗАПОЛНЕНИЕ ТАБЛИЦ
ПО 5 ЗАПИСЕЙ
========================================================= */
/* =========================================================
COUNTRY8
========================================================= */
INSERT INTO Country8
(CountryCode, CountryName)
VALUES
(1, N'Россия'),
(2, N'Беларусь'),
(3, N'Казахстан'),
(4, N'Армения'),
(5, N'Грузия');
/* =========================================================
CLIENT8
========================================================= */
INSERT INTO Client8
(ClientCode, LastName, FirstName, MiddleName,
City, Address, DrivingLicense, CountryCode)
VALUES
(1, N'Иванов', N'Алексей', N'Сергеевич',
N'Ярославль', N'ул. Свободы, д. 15, кв. 24',
N'7600123456', 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);
/* =========================================================
RENTALOFFICE8
========================================================= */
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);
/* =========================================================
CATEGORY8
========================================================= */
INSERT INTO Category8
(CategoryCode, CategoryName, NumberOfSeats)
VALUES
(1, N'Эконом', 2),
(2, N'Стандарт', 4),
(3, N'Семейный', 5),
(4, N'Минивэн', 7),
(5, N'Премиум', 7);
/* =========================================================
CURRENCY8
========================================================= */
INSERT INTO Currency8
(CurrencyCode, CurrencyName, CountryCode)
VALUES
(1, N'Российский рубль', 1),
(2, N'Белорусский рубль', 2),
(3, N'Казахстанский тенге', 3),
(4, N'Армянский драм', 4),
(5, N'Грузинский лари', 5);
/* =========================================================
VEHICLE8
========================================================= */
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'Серебристый',
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);
/* =========================================================
ADDITIONALRENTALCONDITION8
========================================================= */
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);
/* =========================================================
RENTALAGREEMENT8
========================================================= */
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);
/* =========================================================
PAYMENTDOCUMENT8
========================================================= */
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);
/* =========================================================
AGREEMENTDETAIL8
========================================================= */
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);
/* =========================================================
CURRENCYRATE8
========================================================= */
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);