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


-- Таблица 1: Абонент
CREATE TABLE Абонент (
    ID_абонента INT AUTO_INCREMENT PRIMARY KEY,
    Фамилия VARCHAR(30) NOT NULL,
    Имя VARCHAR(30) NOT NULL,
    Отчество VARCHAR(30),
    Адрес VARCHAR(150) NOT NULL,
    Паспортные_данные VARCHAR(50) NOT NULL UNIQUE
);

-- Таблица 2: Тариф
CREATE TABLE Тариф (
    ID_тарифа INT AUTO_INCREMENT PRIMARY KEY,
    Название VARCHAR(50) NOT NULL,
    Абонентская_плата DECIMAL(8,2) NOT NULL,
    Стоимость_минуты DECIMAL(5,2) NOT NULL,
    Описание TEXT
);

-- Таблица 3: Договор
CREATE TABLE Договор (
    ID_договора INT AUTO_INCREMENT PRIMARY KEY,
    ID_абонента INT NOT NULL,
    ID_тарифа INT NOT NULL,
    Дата_заключения DATE NOT NULL,
    Статус ENUM('Активен', 'Заблокирован', 'Расторгнут') DEFAULT 'Активен',
    FOREIGN KEY (ID_абонента) REFERENCES Абонент(ID_абонента),
    FOREIGN KEY (ID_тарифа) REFERENCES Тариф(ID_тарифа)
);

-- Таблица 4: Телефонный_номер
CREATE TABLE Телефонный_номер (
    Номер CHAR(11) PRIMARY KEY,
    ID_договора INT NOT NULL,
    Тип_линии ENUM('Городская', 'Междугородняя') DEFAULT 'Городская',
    Заблокирован BOOLEAN DEFAULT FALSE,
    FOREIGN KEY (ID_договора) REFERENCES Договор(ID_договора)
);

-- Таблица 5: Звонок
CREATE TABLE Звонок (
    ID_звонка INT AUTO_INCREMENT PRIMARY KEY,
    Номер_абонента CHAR(11) NOT NULL,
    Номер_назначения CHAR(11) NOT NULL,
    Длительность INT NOT NULL COMMENT 'Длительность в секундах',
    Стоимость DECIMAL(10,2),
    Дата_время DATETIME NOT NULL,
    FOREIGN KEY (Номер_абонента) REFERENCES Телефонный_номер(Номер)
);
INSERT INTO Абонент (Фамилия, Имя, Отчество, Адрес, Паспортные_данные) VALUES
('Иванов', 'Иван', 'Иванович', 'г. Кемерово, ул. Ленина, д. 10, кв. 25', '4511 123456'),
('Петрова', 'Елена', 'Сергеевна', 'г. Кемерово, пр. Октябрьский, д. 5, кв. 48', '4512 789012'),
('Сидоров', 'Алексей', 'Васильевич', 'г. Кемерово, ул. Весенняя, д. 3, кв. 7', '4515 345678'),
('Кузнецова', 'Мария', 'Дмитриевна', 'г. Новокузнецк, ул. Кирова, д. 15, кв. 12', '4518 901234'),
('Попов', 'Дмитрий', 'Андреевич', 'г. Ленинск-Кузнецкий, пр. Ленина, д. 8, кв. 56', '4520 567890');
INSERT INTO Тариф (Название, Абонентская_плата, Стоимость_минуты, Описание) VALUES
('Эконом', 150.00, 2.50, 'Для тех, кто мало разговаривает. Помощная оплата'),
('Безлимитный', 600.00, 0.00, 'Безлимитные звонки внутри сети и на городские номера'),
('Стандарт', 300.00, 1.20, 'Оптимальный тариф для семейного использования');
INSERT INTO Договор (ID_абонента, ID_тарифа, Дата_заключения, Статус) VALUES
(1, 1, '2023-01-15', 'Активен'),
(1, 2, '2024-02-10', 'Заблокирован'),   -- У Иванова второй договор
(2, 3, '2023-06-20', 'Активен'),
(3, 2, '2023-03-12', 'Активен'),
(4, 1, '2024-01-05', 'Активен'),
(5, 3, '2023-11-18', 'Расторгнут');
INSERT INTO Телефонный_номер (Номер, ID_договора, Тип_линии, Заблокирован) VALUES
('73842345678', 1, 'Городская', FALSE),
('73841234567', 2, 'Междугородняя', TRUE),   -- Этот заблокирован
('73849876543', 3, 'Городская', FALSE),
('79132345678', 4, 'Междугородняя', FALSE),  -- Мобильный код 913
('73841112233', 5, 'Городская', FALSE),
('73845556677', 6, 'Городская', FALSE);
INSERT INTO Звонок (Номер_абонента, Номер_назначения, Длительность, Стоимость, Дата_время) VALUES
('73842345678', '73849876543', 180, 7.50, '2025-04-01 10:15:00'),
('73842345678', '73841112233', 45, 1.88, '2025-04-01 14:30:00'),
('73849876543', '73842345678', 300, 6.00, '2025-04-02 09:00:00'),
('73842345678', '79132345678', 120, 5.00, '2025-04-02 16:20:00'),
('79132345678', '73849876543', 600, 0.00, '2025-04-03 11:45:00'),  -- Безлимитный
('73849876543', '73842345678', 90, 1.80, '2025-04-03 18:00:00'),
('73841112233', '73842345678', 15, 0.63, '2025-04-04 08:30:00'),
('79132345678', '73841112233', 45, 0.90, '2025-04-04 13:15:00'),
('73842345678', '73845556677', 210, 8.75, '2025-04-05 12:00:00'),
('73845556677', '73842345678', 75, 1.50, '2025-04-05 17:30:00');