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


-- 0. Удаление существующих таблиц (в правильном порядке с учетом зависимостей)
DROP TABLE IF EXISTS Заказы;
DROP TABLE IF EXISTS Места_расположения;
DROP TABLE IF EXISTS Дополнительные_услуги;
DROP TABLE IF EXISTS Виды_рекламы;
DROP TABLE IF EXISTS Сотрудники;
DROP TABLE IF EXISTS Должности;
DROP TABLE IF EXISTS Заказчики;
GO

-- 1. Создание таблиц с использованием NVARCHAR для корректного хранения кириллицы
CREATE TABLE Должности (
    Код_должности INT PRIMARY KEY,
    Наименование_должности NVARCHAR(50) NOT NULL,
    Оклад DECIMAL(10, 2) NOT NULL,
    Обязанности NVARCHAR(MAX),
    Требования NVARCHAR(MAX)
);
GO

CREATE TABLE Сотрудники (
    Код_сотрудника INT PRIMARY KEY,
    ФИО NVARCHAR(100) NOT NULL,
    Возраст INT,
    Пол NVARCHAR(10),
    Адрес NVARCHAR(150),
    Телефон NVARCHAR(20),
    Паспортные_данные NVARCHAR(30),
    Код_должности INT
);
GO

CREATE TABLE Виды_рекламы (
    Код_вида INT PRIMARY KEY,
    Наименование NVARCHAR(50) NOT NULL,
    Описание NVARCHAR(MAX)
);
GO

CREATE TABLE Дополнительные_услуги (
    Код_услуги INT PRIMARY KEY,
    Наименование NVARCHAR(50) NOT NULL,
    Описание NVARCHAR(MAX),
    Стоимость DECIMAL(10, 2) NOT NULL
);
GO

CREATE TABLE Места_расположения (
    Код_места INT PRIMARY KEY,
    Наименование NVARCHAR(50) NOT NULL,
    Расположение NVARCHAR(100),
    Код_вида INT,
    Описание NVARCHAR(MAX),
    Стоимость DECIMAL(10, 2) NOT NULL
);
GO

CREATE TABLE Заказчики (
    Код_заказчика INT PRIMARY KEY,
    ФИО NVARCHAR(100) NOT NULL,
    Адрес NVARCHAR(150),
    Телефон NVARCHAR(20)
);
GO

CREATE TABLE Заказы (
    Код_заказа INT PRIMARY KEY IDENTITY(1,1),
    Дата_заказа DATE NOT NULL,
    Дата_начала DATE NOT NULL,
    Дата_окончания DATE NOT NULL,
    Код_заказчика INT,
    Код_места INT,
    Код_услуги_1 INT NULL,
    Код_услуги_2 INT NULL,
    Код_услуги_3 INT NULL,
    Стоимость DECIMAL(10, 2) NOT NULL,
    Отметка_об_оплате NVARCHAR(10),
    Код_сотрудника INT
);
GO

-- 2. Заполнение таблиц данными (с использованием префикса N для русских строк)
INSERT INTO Должности (Код_должности, Наименование_должности, Оклад, Обязанности, Требования) VALUES 
(1, N'Менеджер по рекламе', 50000.00, N'Работа с клиентами, заключение договоров', N'Высшее образование, опыт от 1 года'),
(2, N'Дизайнер', 60000.00, N'Создание макетов рекламы', N'Знание графических редакторов'),
(3, N'Маркетолог', 65000.00, N'Анализ рынка и эффективности рекламы', N'Аналитический склад ума'),
(4, N'Бухгалтер', 55000.00, N'Ведение финансовой отчетности', N'Знание 1С, опыт работы'),
(5, N'Директор', 100000.00, N'Управление агентством', N'Опыт руководства от 3 лет');
GO

INSERT INTO Сотрудники (Код_сотрудника, ФИО, Возраст, Пол, Адрес, Телефон, Паспортные_данные, Код_должности) VALUES 
(1, N'Иванова Анна Сергеевна', 30, N'Женский', N'г. Москва, ул. Ленина, д. 1', N'+79161234567', N'4510 123456', 1),
(2, N'Петрова Мария Дмитриевна', 28, N'Женский', N'г. Москва, ул. Мира, д. 5', N'+79162345678', N'4511 234567', 2),
(3, N'Смирнов Алексей Петрович', 35, N'Мужской', N'г. Москва, ул. Тверская, д. 10', N'+79163456789', N'4512 345678', 3),
(4, N'Кузнецова Елена Павловна', 40, N'Женский', N'г. Москва, ул. Арбат, д. 15', N'+79164567890', N'4513 456789', 4),
(5, N'Васильев Дмитрий Олегович', 45, N'Мужской', N'г. Москва, пр. Мира, д. 20', N'+79165678901', N'4514 567890', 5);
GO

INSERT INTO Виды_рекламы (Код_вида, Наименование, Описание) VALUES 
(1, N'Наружная реклама', N'Баннеры и билборды на улицах'),
(2, N'Интернет-реклама', N'Баннеры, контекстная реклама в сети'),
(3, N'Телевизионная реклама', N'Ролики на ТВ и кабельных каналах'),
(4, N'Печатная реклама', N'Объявления в газетах и журналах'),
(5, N'Радиореклама', N'Аудиоролики на радиостанциях');
GO

INSERT INTO Дополнительные_услуги (Код_услуги, Наименование, Описание, Стоимость) VALUES 
(1, N'Разработка логотипа', N'Создание уникального фирменного знака', 15000.00),
(2, N'Монтаж видео', N'Создание видеоролика из материалов заказчика', 20000.00),
(3, N'Копирайтинг', N'Написание рекламных текстов и слоганов', 5000.00),
(4, N'Фотосессия', N'Профессиональная фотосъемка товара', 10000.00),
(5, N'Анализ конкурентов', N'Маркетинговое исследование рынка', 25000.00);
GO

INSERT INTO Места_расположения (Код_места, Наименование, Расположение, Код_вида, Описание, Стоимость) VALUES 
(1, N'Щит на МКАД', N'14-й км МКАД', 1, N'Двусторонний рекламный щит 3х6м', 50000.00),
(2, N'Баннер у метро', N'Станция метро Площадь Революции', 1, N'Световой коробок в вестибюле', 30000.00),
(3, N'Портал РБК', N'Главная страница сайта', 2, N'Баннер 728x90', 80000.00),
(4, N'Главный канал', N'Прайм-тайм (20:00)', 3, N'Рекламный ролик 30 секунд', 150000.00),
(5, N'Журнал Forbes', N'Разворот журнала', 4, N'Цветная полоса', 100000.00);
GO

INSERT INTO Заказчики (Код_заказчика, ФИО, Адрес, Телефон) VALUES 
(1, N'ООО "ТехноПром"', N'г. Москва, ул. Промышленная, д. 2', N'+74951112233'),
(2, N'ИП Смирнов А.В.', N'г. Санкт-Петербург, Невский пр., д. 10', N'+78129998877'),
(3, N'АО "Молочный завод"', N'г. Москва, ул. Молодежная, д. 8', N'+74953334455'),
(4, N'ООО "АвтоСтиль"', N'г. Казань, ул. Баумана, д. 15', N'+78435556677'),
(5, N'ООО "ФармаМед"', N'г. Новосибирск, Красный пр., д. 25', N'+73832221144');
GO

INSERT INTO Заказы (Дата_заказа, Дата_начала, Дата_окончания, Код_заказчика, Код_места, Код_услуги_1, Код_услуги_2, Код_услуги_3, Стоимость, Отметка_об_оплате, Код_сотрудника) VALUES 
('2026-01-10', '2026-01-15', '2026-02-15', 1, 1, 1, 3, NULL, 70000.00, N'Да', 1),
('2026-01-12', '2026-01-20', '2026-02-20', 2, 2, 2, NULL, NULL, 50000.00, N'Нет', 1),
('2026-02-01', '2026-02-05', '2026-03-05', 3, 3, 3, 5, NULL, 110000.00, N'Да', 2),
('2026-02-10', '2026-02-15', '2026-02-28', 4, 4, 1, 2, 4, 185000.00, N'Да', 3),
('2026-02-15', '2026-03-01', '2026-04-01', 5, 5, 3, NULL, NULL, 125000.00, N'Нет', 2);
GO

-- 3. Создание связей между таблицами (Внешние ключи)
ALTER TABLE Сотрудники
ADD CONSTRAINT FK_Сотрудники_Должности 
FOREIGN KEY (Код_должности) REFERENCES Должности(Код_должности);

ALTER TABLE Места_расположения
ADD CONSTRAINT FK_Места_Виды_рекламы 
FOREIGN KEY (Код_вида) REFERENCES Виды_рекламы(Код_вида);

ALTER TABLE Заказы
ADD CONSTRAINT FK_Заказы_Заказчики 
FOREIGN KEY (Код_заказчика) REFERENCES Заказчики(Код_заказчика);

ALTER TABLE Заказы
ADD CONSTRAINT FK_Заказы_Места 
FOREIGN KEY (Код_места) REFERENCES Места_расположения(Код_места);

ALTER TABLE Заказы
ADD CONSTRAINT FK_Заказы_Услуги1 
FOREIGN KEY (Код_услуги_1) REFERENCES Дополнительные_услуги(Код_услуги);

ALTER TABLE Заказы
ADD CONSTRAINT FK_Заказы_Услуги2 
FOREIGN KEY (Код_услуги_2) REFERENCES Дополнительные_услуги(Код_услуги);

ALTER TABLE Заказы
ADD CONSTRAINT FK_Заказы_Услуги3 
FOREIGN KEY (Код_услуги_3) REFERENCES Дополнительные_услуги(Код_услуги);

ALTER TABLE Заказы
ADD CONSTRAINT FK_Заказы_Сотрудники 
FOREIGN KEY (Код_сотрудника) REFERENCES Сотрудники(Код_сотрудника);
GO