Загрузка данных
-- 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