INSERT INTO Roles (name) VALUES ('преподаватель'), ('студент'); INSERT INTO Users (first_name, last_name, middle_name, mail, phone_number, date_birth, Id_role) VALUES ('Александр', 'Иванов', 'Петрович', 'alex.ivanov@example.com', '+12345678901', '1990-03-15', 1), ('Елена', 'Смирнова', 'Андреевна', 'elena.smirnova@example.com', '+12345678902', '1995-08-22', 2), ('Иван', 'Петров', 'Александрович', 'ivan.petrov@example.com', '+12345678903', '1993-05-11', 2), ('Мария', 'Козлова', 'Дмитриевна', 'maria.kozlova@example.com', '+12345678904', '1998-11-30', 2), ('Сергей', 'Соколов', 'Иванович', 'sergey.sokolov@example.com', '+12345678905', '1994-02-25', 1), ('Анна', 'Михайлова', 'Сергеевна', 'anna.mikhailova@example.com', '+12345678906', '1996-07-14', 2), ('Павел', 'Новиков', 'Артемович', 'pavel.novikov@example.com', '+12345678907', '1991-09-03', 2), ('Юлия', 'Федорова', 'Алексеевна', 'yulia.fedorova@example.com', '+12345678908', '1997-04-20', 2), ('Артем', 'Морозов', 'Павлович', 'artem.morozov@example.com', '+12345678909', '1992-12-09', 1), ('Екатерина', 'Волкова', 'Игоревна', 'ekaterina.volkova@example.com', '+12345678910', '1999-01-18', 2), ('Денис', 'Павлов', 'Федорович', 'denis.pavlov@example.com', '+12345678911', '1990-06-27', 2), ('Ольга', 'Семенова', 'Денисовна', 'olga.semenova@example.com', '+12345678912', '1995-10-16', 2), ('Игорь', 'Гончаров', 'Дмитриевич', 'igor.goncharov@example.com', '+12345678913', '1993-03-05', 1), ('Евгения', 'Николаева', 'Олеговна', 'evgenia.nikolaeva@example.com', '+12345678914', '1998-08-24', 2), ('Алексей', 'Кузнецов', 'Владимирович', 'alexey.kuznetsov@example.com', '+12345678915', '1994-01-13', 2), ('Анастасия', 'Ильина', 'Юрьевна', 'anastasia.ilina@example.com', '+12345678916', '1991-07-02', 2), ('Григорий', 'Савельев', 'Антонович', 'grigory.savelyev@example.com', '+12345678917', '1996-11-21', 2), ('Татьяна', 'Беляева', 'Игнатьевна', 'tatyana.belyaeva@example.com', '+12345678918', '1992-04-10', 1), ('Дмитрий', 'Тимофеев', 'Аркадьевич', 'dmitry.timofeev@example.com', '+12345678919', '1997-09-29', 2), ('Елена', 'Калинина', 'Георгиевна', 'elena.kalinina@example.com', '+12345678920', '1999-02-08', 2); INSERT INTO Departments (name) VALUES ('Отделение инженерии и технологии'), ('Факультет информационных технологий'), ('Кафедра гуманитарных наук'); INSERT INTO Specialties (name, Id_department) VALUES ('Инженерия программного обеспечения', 1), ('Автоматизация технологических процессов', 1), ('Системный анализ и управление', 1), ('Веб-разработка и программирование', 2), ('Базы данных и информационные системы', 2), ('Компьютерная безопасность', 2), ('Лингвистика', 3), ('Психология', 3), ('История искусств', 3), ('Социология', 3); INSERT INTO "Groups" (Id_specialty, start_date, name) VALUES (1, '2023-09-01', '11ИПО'), (1, '2022-09-01', '21ИПО'), (1, '2021-09-01', '31ИПО'), (1, '2020-09-01', '41ИПО'), (2, '2023-09-01', '11АТП'), (2, '2022-09-01', '21АТП'), (2, '2021-09-01', '31АТП'), (2, '2020-09-01', '41АТП'), (3, '2023-09-01', '11САУ'), (3, '2022-09-01', '21САУ'), (3, '2021-09-01', '31САУ'), (3, '2020-09-01', '41САУ'), (4, '2023-09-01', '11ВПР'), (4, '2022-09-01', '21ВПР'), (4, '2021-09-01', '31ВПР'), (4, '2020-09-01', '41ВПР'), (5, '2023-09-01', '11ВРП'), (5, '2022-09-01', '21ВРП'), (5, '2021-09-01', '31ВРП'), (5, '2020-09-01', '41ВРП'), (6, '2023-09-01', '11КБ'), (6, '2022-09-01', '21КБ'), (6, '2021-09-01', '31КБ'), (6, '2020-09-01', '41КБ'), (7, '2023-09-01', '11БД'), (7, '2022-09-01', '21БД'), (7, '2021-09-01', '31БД'), (7, '2020-09-01', '41БД'), (8, '2023-09-01', '11КО'), (8, '2022-09-01', '21КО'), (8, '2021-09-01', '31КО'), (8, '2020-09-01', '41КО'), (9, '2023-09-01', '11ЛИН'), (9, '2022-09-01', '21ЛИН'), (9, '2021-09-01', '31ЛИН'), (9, '2020-09-01', '41ЛИН'), (10, '2023-09-01', '11ПСИ'), (10, '2022-09-01', '21ПСИ'), (10, '2021-09-01', '31ПСИ'), (10, '2020-09-01', '41ПСИ'); select id from Users where id_role = 1 INSERT INTO Students (user_id, group_id) values (2,1), (3,1), (4,1), (6,1), (7,1), (8,3), (10,3), (11,3), (12,3), (14,3), (15,7), (16,7), (17,7), (19,7), (20,7); insert into Teachers values (1,1), (5,1), (9,2), (13,2), (18,3); INSERT INTO Disciplines (name, department_id, academic_hours) VALUES ('Программирование на Python', 1, 90), ('Математический анализ', 1, 120), ('Алгоритмы и структуры данных', 1, 100), ('Промышленная автоматизация', 1, 80), ('Веб-дизайн', 2, 80), ('Базы данных и SQL', 2, 100), ('Компьютерная безопасность', 2, 120), ('Системное программирование', 2, 90), ('История искусств', 3, 60), ('Социология', 3, 80), ('Психология', 3, 100), ('Философия', 3, 70); -- Заполнение таблицы TeachersDisciplines -- Преподаватель 1 (Александр Иванов) INSERT INTO TeachersDisciplines (teacher_id, discipline_id) VALUES (1, 1), -- Программирование на Python (1, 2), -- Математический анализ (1, 3), -- Алгоритмы и структуры данных (1, 4); -- Промышленная автоматизация -- Преподаватель 5 (Сергей Соколов) INSERT INTO TeachersDisciplines (teacher_id, discipline_id) VALUES (5, 1), -- Программирование на Python (5, 3), -- Алгоритмы и структуры данных (5, 4), -- Промышленная автоматизация (5, 8); -- Системное программирование -- Преподаватель 9 (Артем Морозов) INSERT INTO TeachersDisciplines (teacher_id, discipline_id) VALUES (9, 5), -- Веб-дизайн (9, 6), -- Базы данных и SQL (9, 7), -- Компьютерная безопасность (9, 8); -- Системное программирование -- Преподаватель 13 (Игорь Гончаров) INSERT INTO TeachersDisciplines (teacher_id, discipline_id) VALUES (13, 5), -- Веб-дизайн (13, 6), -- Базы данных и SQL (13, 7), -- Компьютерная безопасность (13, 8); -- Системное программирование -- Преподаватель 18 (Татьяна Беляева) INSERT INTO TeachersDisciplines (teacher_id, discipline_id) VALUES (18, 9), -- История искусств (18, 10), -- Социология (18, 11), -- Психология (18, 12); -- Философия -- Для преподавателя с ID 1 (Александр Иванов) -- Группа 11ИПО INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 1, 1), -- Программирование на Python (1, 2, 1), -- Математический анализ (1, 3, 1), -- Алгоритмы и структуры данных (1, 4, 1); -- Промышленная автоматизация -- Группа 21ИПО INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 1, 2), -- Программирование на Python (1, 2, 2), -- Математический анализ (1, 3, 2), -- Алгоритмы и структуры данных (1, 4, 2); -- Промышленная автоматизация -- Группа 31ИПО INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 1, 3), -- Программирование на Python (1, 2, 3), -- Математический анализ (1, 3, 3), -- Алгоритмы и структуры данных (1, 4, 3); -- Промышленная автоматизация -- Группа 41ИПО INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 1, 4), -- Программирование на Python (1, 2, 4), -- Математический анализ (1, 3, 4), -- Алгоритмы и структуры данных (1, 4, 4); -- Промышленная автоматизация -- Для преподавателя с ID 1 (Александр Иванов) -- Группа 31ИПО INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 1, 3), -- Программирование на Python (1, 2, 3), -- Математический анализ (1, 3, 3), -- Алгоритмы и структуры данных (1, 4, 3); -- Промышленная автоматизация -- Группа 41ИПО INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 1, 4), -- Программирование на Python (1, 2, 4), -- Математический анализ (1, 3, 4), -- Алгоритмы и структуры данных (1, 4, 4); -- Промышленная автоматизация -- Продолжаем аналогично для остальных групп. -- Для преподавателя с ID 5 (Сергей Соколов) -- Группа 31ИПО INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 5, 3), -- Программирование на Python (1, 3, 3), -- Алгоритмы и структуры данных (1, 4, 3), -- Промышленная автоматизация (1, 8, 3); -- Системное программирование -- Группа 41ИПО INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 5, 4), -- Программирование на Python (1, 3, 4), -- Алгоритмы и структуры данных (1, 4, 4), -- Промышленная автоматизация (1, 8, 4); -- Системное программирование -- Продолжаем аналогично для остальных групп. -- Для преподавателя с ID 9 (Артем Морозов) -- Группа 11АТП INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 9, 5), -- Веб-дизайн (1, 10, 5), -- Базы данных и SQL (1, 11, 5), -- Компьютерная безопасность (1, 8, 5); -- Системное программирование -- Продолжаем аналогично для остальных групп. -- Для преподавателя с ID 13 (Игорь Гончаров) -- Группа 11АТП INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 9, 5), -- Веб-дизайн (1, 10, 5), -- Базы данных и SQL (1, 11, 5), -- Компьютерная безопасность (1, 8, 5); -- Системное программирование -- Продолжаем аналогично для остальных групп. -- Для преподавателя с ID 18 (Татьяна Беляева) -- Группа 11САУ INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 12, 9), -- Философия (1, 10, 9), -- Социология (1, 11, 9), -- Психология (1, 9, 9); -- История искусств -- Для преподавателя с ID 1 (Александр Иванов) -- Группа 41САУ INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 1, 12), -- Программирование на Python (1, 2, 12), -- Математический анализ (1, 3, 12), -- Алгоритмы и структуры данных (1, 5, 12); -- Философия -- Группа 11ВПР INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 1, 13), -- Программирование на Python (1, 2, 13), -- Математический анализ (1, 3, 13), -- Алгоритмы и структуры данных (1, 5, 13); -- Философия -- Продолжаем аналогично для остальных групп. -- Для преподавателя с ID 5 (Сергей Соколов) -- Группа 41САУ INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 5, 12), -- Философия (1, 3, 12), -- Алгоритмы и структуры данных (1, 4, 12), -- Промышленная автоматизация (1, 6, 12); -- Компьютерная безопасность -- Группа 11ВПР INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 5, 13), -- Философия (1, 3, 13), -- Алгоритмы и структуры данных (1, 4, 13), -- Промышленная автоматизация (1, 6, 13); -- Компьютерная безопасность -- Продолжаем аналогично для остальных групп. -- Для преподавателя с ID 9 (Артем Морозов) -- Группа 11БД INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 10, 14), -- Базы данных и SQL (1, 11, 14), -- Компьютерная безопасность (1, 12, 14), -- Философия (1, 13, 14); -- История искусств -- Группа 21БД INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 10, 15), -- Базы данных и SQL (1, 11, 15), -- Компьютерная безопасность (1, 12, 15), -- Философия (1, 13, 15); -- История искусств -- Продолжаем аналогично для остальных групп. -- Для преподавателя с ID 13 (Игорь Гончаров) -- Группа 11БД INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 10, 14), -- Базы данных и SQL (1, 11, 14), -- Компьютерная безопасность (1, 12, 14), -- Философия (1, 13, 14); -- История искусств -- Продолжаем аналогично для остальных групп. -- Для преподавателя с ID 18 (Татьяна Беляева) -- Группа 11ЛИН INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id) VALUES (1, 9, 19), -- Веб-дизайн (1, 10, 19), -- Базы данных и SQL (1, 11, 19), -- Компьютерная безопасность (1, 12, 19); -- Философия INSERT INTO Buildings (Mgr, address) VALUES (1, 'ул. Пушкина, д. 10'), (5, 'пр. Ленина, д. 25'); ALTER TABLE Timetables RENAME COLUMN buildind_id TO building_id; -- Для преподавателя с ID 1 (Александр Иванов) -- Понедельник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-02', 1, 1, 1), -- 9:00-10:30 Программирование на Python ('2024-09-02', 2, 1, 1), -- 10:45-12:15 Математический анализ ('2024-09-02', 3, 1, 1), -- 12:30-14:00 Алгоритмы и структуры данных ('2024-09-02', 4, 1, 1); -- 14:30-16:00 Промышленная автоматизация -- Вторник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-03', 1, 1, 1), -- 9:00-10:30 Программирование на Python ('2024-09-03', 2, 1, 1), -- 10:45-12:15 Математический анализ ('2024-09-03', 3, 1, 1), -- 12:30-14:00 Алгоритмы и структуры данных ('2024-09-03', 4, 1, 1); -- 14:30-16:00 Промышленная автоматизация -- Продолжаем аналогично для остальных дней и преподавателей. -- Для преподавателя с ID 5 (Сергей Соколов) -- Понедельник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-02', 1, 2, 1), -- 9:00-10:30 Программирование на Python ('2024-09-02', 2, 2, 1), -- 10:45-12:15 Алгоритмы и структуры данных ('2024-09-02', 3, 2, 1), -- 12:30-14:00 Промышленная автоматизация ('2024-09-02', 4, 2, 1); -- 14:30-16:00 Системное программирование -- Вторник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-03', 1, 2, 1), -- 9:00-10:30 Программирование на Python ('2024-09-03', 2, 2, 1), -- 10:45-12:15 Алгоритмы и структуры данных ('2024-09-03', 3, 2, 1), -- 12:30-14:00 Промышленная автоматизация ('2024-09-03', 4, 2, 1); -- 14:30-16:00 Системное программирование -- Продолжаем аналогично для остальных дней и преподавателей. -- Для преподавателя с ID 9 (Артем Морозов) -- Понедельник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-02', 1, 3, 1), -- 9:00-10:30 Веб-дизайн ('2024-09-02', 2, 3, 1), -- 10:45-12:15 Базы данных и SQL ('2024-09-02', 3, 3, 1), -- 12:30-14:00 Компьютерная безопасность ('2024-09-02', 4, 3, 1); -- 14:30-16:00 Системное программирование -- Вторник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-03', 1, 3, 1), -- 9:00-10:30 Веб-дизайн ('2024-09-03', 2, 3, 1), -- 10:45-12:15 Базы данных и SQL ('2024-09-03', 3, 3, 1), -- 12:30-14:00 Компьютерная безопасность ('2024-09-03', 4, 3, 1); -- 14:30-16:00 Системное программирование -- Для преподавателя с ID 13 (Игорь Гончаров) -- Понедельник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-02', 1, 4, 1), -- 9:00-10:30 Программирование на Java ('2024-09-02', 2, 4, 1), -- 10:45-12:15 Веб-дизайн ('2024-09-02', 3, 4, 1), -- 12:30-14:00 Базы данных и SQL ('2024-09-02', 4, 4, 1); -- 14:30-16:00 Компьютерная безопасность -- Вторник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-03', 1, 4, 1), -- 9:00-10:30 Программирование на Java ('2024-09-03', 2, 4, 1), -- 10:45-12:15 Веб-дизайн ('2024-09-03', 3, 4, 1), -- 12:30-14:00 Базы данных и SQL ('2024-09-03', 4, 4, 1); -- 14:30-16:00 Компьютерная безопасность -- Продолжаем аналогично для остальных дней и преподавателей. -- Для преподавателя с ID 18 (Татьяна Беляева) -- Понедельник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-02', 1, 5, 1), -- 9:00-10:30 История искусств ('2024-09-02', 2, 5, 1), -- 10:45-12:15 Лингвистика ('2024-09-02', 3, 5, 1), -- 12:30-14:00 Психология ('2024-09-02', 4, 5, 1); -- 14:30-16:00 Социология -- Вторник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-03', 1, 5, 1), -- 9:00-10:30 История искусств ('2024-09-03', 2, 5, 1), -- 10:45-12:15 Лингвистика ('2024-09-03', 3, 5, 1), -- 12:30-14:00 Психология ('2024-09-03', 4, 5, 1); -- 14:30-16:00 Социология -- Продолжаем аналогично для остальных дней и преподавателей. -- Для преподавателя с ID 1 (Александр Иванов) -- Понедельник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-02', 1, 1, 2), -- 9:00-10:30 Программирование на Python ('2024-09-02', 2, 1, 2), -- 10:45-12:15 Математический анализ ('2024-09-02', 3, 1, 2), -- 12:30-14:00 Алгоритмы и структуры данных ('2024-09-02', 4, 1, 2); -- 14:30-16:00 Промышленная автоматизация -- Вторник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-03', 1, 1, 2), -- 9:00-10:30 Программирование на Python ('2024-09-03', 2, 1, 2), -- 10:45-12:15 Математический анализ ('2024-09-03', 3, 1, 2), -- 12:30-14:00 Алгоритмы и структуры данных ('2024-09-03', 4, 1, 2); -- 14:30-16:00 Промышленная автоматизация -- Продолжаем аналогично для остальных дней и преподавателей. -- Для преподавателя с ID 5 (Сергей Соколов) -- Вторник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-03', 1, 2, 2), -- 9:00-10:30 Программирование на Python ('2024-09-03', 2, 2, 2), -- 10:45-12:15 Алгоритмы и структуры данных ('2024-09-03', 3, 2, 2), -- 12:30-14:00 Промышленная автоматизация ('2024-09-03', 4, 2, 2); -- 14:30-16:00 Системное программирование -- Продолжаем аналогично для остальных дней и преподавателей. -- Для преподавателя с ID 9 (Артем Морозов) -- Вторник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-03', 1, 3, 2), -- 9:00-10:30 Веб-дизайн ('2024-09-03', 2, 3, 2), -- 10:45-12:15 Базы данных и SQL ('2024-09-03', 3, 3, 2), -- 12:30-14:00 Компьютерная безопасность ('2024-09-03', 4, 3, 2); -- 14:30-16:00 Системное программирование -- Для преподавателя с ID 13 (Игорь Гончаров) -- Вторник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-03', 1, 4, 2), -- 9:00-10:30 Программирование на Java ('2024-09-03', 2, 4, 2), -- 10:45-12:15 Веб-дизайн ('2024-09-03', 3, 4, 2), -- 12:30-14:00 Базы данных и SQL ('2024-09-03', 4, 4, 2); -- 14:30-16:00 Компьютерная безопасность -- Для преподавателя с ID 18 (Татьяна Беляева) -- Вторник INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id) VALUES ('2024-09-03', 1, 5, 2), -- 9:00-10:30 История искусств ('2024-09-03', 2, 5, 2), -- 10:45-12:15 Лингвистика ('2024-09-03', 3, 5, 2), -- 12:30-14:00 Психология ('2024-09-03', 4, 5, 2); -- 14:30-16:00 Социология INSERT INTO StudentGrades (student_id, group_discipline_id, graded_at, grade, work_name) SELECT s.user_id, gd.id, now() - interval '1' month * (random() * 12 + 1), -- Случайная дата за последние 12 месяцев floor(random() * 4) + 2, -- Случайная оценка от 2 до 5 CASE floor(random() * 4) WHEN 0 THEN 'Контрольная работа' WHEN 1 THEN 'Экзамен' WHEN 2 THEN 'Лабораторная работа' ELSE 'Курсовая работа' END FROM Students s JOIN "Groups" g ON s.group_id = g.id JOIN GroupDiscipline gd ON g.id = gd.group_id; -- Заполняем таблицу Attendance для всех студентов и их дисциплин, учитывая группу студента INSERT INTO Attendance (timetable_id, student_id, attended) SELECT tt.id, s.user_id, CASE floor(random() * 2) WHEN 0 THEN true -- Случайно выбираем, посетил ли студент занятие ELSE false END FROM Timetables tt JOIN GroupDiscipline gd ON tt.group_discipline_id = gd.id JOIN Students s ON gd.group_id = s.group_id;