Загрузка данных
/* =========================================================
ЗАДАНИЕ №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)
);
/* =========================================================
ЗАПОЛНЕНИЕ ТАБЛИЦ
========================================================= */
/* =========================================================
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'ул. Ушинского, д. 12, кв. 15',
N'7600123456', 1),
(2, N'Исаев', N'Владимир', N'Петрович',
N'Москва', N'ул. Арбат, д. 35, кв. 21',
N'7700234512', 1),
(3, N'Сидоров', N'Николай', N'Михайлович',
N'Минск', N'ул. Пушкина, д. 19, кв. 32',
N'7700345623', 2),
(4, N'Миронов', N'Артём', N'Дмитриевич',
N'Астана', N'ул. Кенесары, д. 44, кв. 8',
N'7700456734', 3),
(5, N'Попова', N'Дарья', N'Сергеевна',
N'Тбилиси', N'ул. Руставели, д. 28, кв. 17',
N'7700567845', 5);
/* =========================================================
RENTALOFFICE8
========================================================= */
INSERT INTO RentalOffice8
(OfficeCode, City, Address, CountryCode)
VALUES
(1, N'Санкт-Петербург', N'Невский проспект, д. 48', 1),
(2, N'Ярославль', N'ул. Чайковского, д. 16', 1),
(3, N'Минск', N'ул. Немига, д. 22', 2),
(4, N'Алматы', N'пр. Абая, д. 57', 3),
(5, N'Тбилиси', N'ул. Пекина, д. 11', 5);
/* =========================================================
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, 3900.00,
N'Hyundai', N'Solaris', N'Синий',
N'А321ВС76', 1),
(2, 2, 5100.00,
N'Volkswagen', N'Polo', N'Белый',
N'В654КМ77', 1),
(3, 3, 6700.00,
N'Skoda', N'Octavia', N'Серый',
N'Е879ОР76', 1),
(4, 4, 9200.00,
N'Ford', N'Transit', N'Красный',
N'К246ТХ77', 1),
(5, 5, 14500.00,
N'Audi', N'Q7', N'Черный',
N'М583АС77', 1);
/* =========================================================
ADDITIONALRENTALCONDITION8
========================================================= */
INSERT INTO AdditionalRentalCondition8
(RecordNumber, ConditionDescription, CurrencyCode, Cost)
VALUES
(1, N'Детское автомобильное кресло', 1, 900.00),
(2, N'Дополнительный водитель', 1, 1800.00),
(3, N'Полная мойка автомобиля', 1, 1200.00),
(4, N'Подача автомобиля к аэропорту', 1, 3000.00),
(5, N'Расширенная страховка', 1, 3500.00);
/* =========================================================
RENTALAGREEMENT8
========================================================= */
INSERT INTO RentalAgreement8
(AgreementNumber,
RentalOfficeCode,
ReturnOfficeCode,
RegistrationDate,
RentalStartDate,
RentalPeriod,
RentalEndDate,
ActualRentalEndDate,
Manager,
Phone,
IsCancelled,
ClientCode,
VehicleCode)
VALUES
(2001,
2,
1,
'2026-09-01',
'2026-09-02',
4,
'2026-09-06',
'2026-09-06',
N'Павлов Игорь',
N'+7 910 111-22-33',
0,
1,
1),
(2002,
1,
2,
'2026-09-02',
'2026-09-04',
6,
'2026-09-10',
NULL,
N'Белова Ирина',
N'+7 920 222-33-44',
0,
2,
2),
(2003,
3,
3,
'2026-08-28',
'2026-08-29',
5,
'2026-09-03',
'2026-09-03',
N'Захаров Михаил',
N'+375 29 333-44-55',
0,
3,
3),
(2004,
4,
4,
'2026-09-01',
'2026-09-05',
8,
'2026-09-13',
NULL,
N'Ким Александр',
N'+7 701 444-55-66',
0,
4,
4),
(2005,
5,
5,
'2026-08-24',
'2026-08-25',
3,
'2026-08-28',
'2026-08-28',
N'Григорьева Ольга',
N'+995 555 666-77-88',
0,
5,
5);
/* =========================================================
PAYMENTDOCUMENT8
========================================================= */
INSERT INTO PaymentDocument8
(DocumentNumber,
AgreementNumber,
DocumentType,
PaymentDate,
Amount,
CurrencyCode)
VALUES
(6001, 2001, N'Банковская карта',
'2026-09-02', 15600.00, 1),
(6002, 2002, N'Наличные',
'2026-09-04', 30600.00, 1),
(6003, 2003, N'Банковская карта',
'2026-09-01', 33500.00, 2),
(6004, 2004, N'Банковская карта',
'2026-09-05', 73600.00, 3),
(6005, 2005, N'Наличные',
'2026-08-25', 43500.00, 5);
/* =========================================================
AGREEMENTDETAIL8
========================================================= */
INSERT INTO AgreementDetail8
(AgreementNumber, RecordNumber, Coefficient)
VALUES
(2001, 1, 1.0000),
(2002, 2, 1.0000),
(2003, 3, 1.0000),
(2004, 4, 1.0000),
(2005, 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.6700),
(3, 3, '2026-09-01', 0.2050),
(4, 4, '2026-09-01', 0.2180),
(5, 5, '2026-09-01', 27.9500);