скрипт_заполнения_БД.sql 25 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534
  1. INSERT INTO Roles (name) VALUES ('преподаватель'), ('студент');
  2. INSERT INTO Users (first_name, last_name, middle_name, mail, phone_number, date_birth, Id_role) VALUES
  3. ('Александр', 'Иванов', 'Петрович', 'alex.ivanov@example.com', '+12345678901', '1990-03-15', 1),
  4. ('Елена', 'Смирнова', 'Андреевна', 'elena.smirnova@example.com', '+12345678902', '1995-08-22', 2),
  5. ('Иван', 'Петров', 'Александрович', 'ivan.petrov@example.com', '+12345678903', '1993-05-11', 2),
  6. ('Мария', 'Козлова', 'Дмитриевна', 'maria.kozlova@example.com', '+12345678904', '1998-11-30', 2),
  7. ('Сергей', 'Соколов', 'Иванович', 'sergey.sokolov@example.com', '+12345678905', '1994-02-25', 1),
  8. ('Анна', 'Михайлова', 'Сергеевна', 'anna.mikhailova@example.com', '+12345678906', '1996-07-14', 2),
  9. ('Павел', 'Новиков', 'Артемович', 'pavel.novikov@example.com', '+12345678907', '1991-09-03', 2),
  10. ('Юлия', 'Федорова', 'Алексеевна', 'yulia.fedorova@example.com', '+12345678908', '1997-04-20', 2),
  11. ('Артем', 'Морозов', 'Павлович', 'artem.morozov@example.com', '+12345678909', '1992-12-09', 1),
  12. ('Екатерина', 'Волкова', 'Игоревна', 'ekaterina.volkova@example.com', '+12345678910', '1999-01-18', 2),
  13. ('Денис', 'Павлов', 'Федорович', 'denis.pavlov@example.com', '+12345678911', '1990-06-27', 2),
  14. ('Ольга', 'Семенова', 'Денисовна', 'olga.semenova@example.com', '+12345678912', '1995-10-16', 2),
  15. ('Игорь', 'Гончаров', 'Дмитриевич', 'igor.goncharov@example.com', '+12345678913', '1993-03-05', 1),
  16. ('Евгения', 'Николаева', 'Олеговна', 'evgenia.nikolaeva@example.com', '+12345678914', '1998-08-24', 2),
  17. ('Алексей', 'Кузнецов', 'Владимирович', 'alexey.kuznetsov@example.com', '+12345678915', '1994-01-13', 2),
  18. ('Анастасия', 'Ильина', 'Юрьевна', 'anastasia.ilina@example.com', '+12345678916', '1991-07-02', 2),
  19. ('Григорий', 'Савельев', 'Антонович', 'grigory.savelyev@example.com', '+12345678917', '1996-11-21', 2),
  20. ('Татьяна', 'Беляева', 'Игнатьевна', 'tatyana.belyaeva@example.com', '+12345678918', '1992-04-10', 1),
  21. ('Дмитрий', 'Тимофеев', 'Аркадьевич', 'dmitry.timofeev@example.com', '+12345678919', '1997-09-29', 2),
  22. ('Елена', 'Калинина', 'Георгиевна', 'elena.kalinina@example.com', '+12345678920', '1999-02-08', 2);
  23. INSERT INTO Departments (name) VALUES
  24. ('Отделение инженерии и технологии'),
  25. ('Факультет информационных технологий'),
  26. ('Кафедра гуманитарных наук');
  27. INSERT INTO Specialties (name, Id_department) VALUES
  28. ('Инженерия программного обеспечения', 1),
  29. ('Автоматизация технологических процессов', 1),
  30. ('Системный анализ и управление', 1),
  31. ('Веб-разработка и программирование', 2),
  32. ('Базы данных и информационные системы', 2),
  33. ('Компьютерная безопасность', 2),
  34. ('Лингвистика', 3),
  35. ('Психология', 3),
  36. ('История искусств', 3),
  37. ('Социология', 3);
  38. INSERT INTO "Groups" (Id_specialty, start_date, name) VALUES
  39. (1, '2023-09-01', '11ИПО'),
  40. (1, '2022-09-01', '21ИПО'),
  41. (1, '2021-09-01', '31ИПО'),
  42. (1, '2020-09-01', '41ИПО'),
  43. (2, '2023-09-01', '11АТП'),
  44. (2, '2022-09-01', '21АТП'),
  45. (2, '2021-09-01', '31АТП'),
  46. (2, '2020-09-01', '41АТП'),
  47. (3, '2023-09-01', '11САУ'),
  48. (3, '2022-09-01', '21САУ'),
  49. (3, '2021-09-01', '31САУ'),
  50. (3, '2020-09-01', '41САУ'),
  51. (4, '2023-09-01', '11ВПР'),
  52. (4, '2022-09-01', '21ВПР'),
  53. (4, '2021-09-01', '31ВПР'),
  54. (4, '2020-09-01', '41ВПР'),
  55. (5, '2023-09-01', '11ВРП'),
  56. (5, '2022-09-01', '21ВРП'),
  57. (5, '2021-09-01', '31ВРП'),
  58. (5, '2020-09-01', '41ВРП'),
  59. (6, '2023-09-01', '11КБ'),
  60. (6, '2022-09-01', '21КБ'),
  61. (6, '2021-09-01', '31КБ'),
  62. (6, '2020-09-01', '41КБ'),
  63. (7, '2023-09-01', '11БД'),
  64. (7, '2022-09-01', '21БД'),
  65. (7, '2021-09-01', '31БД'),
  66. (7, '2020-09-01', '41БД'),
  67. (8, '2023-09-01', '11КО'),
  68. (8, '2022-09-01', '21КО'),
  69. (8, '2021-09-01', '31КО'),
  70. (8, '2020-09-01', '41КО'),
  71. (9, '2023-09-01', '11ЛИН'),
  72. (9, '2022-09-01', '21ЛИН'),
  73. (9, '2021-09-01', '31ЛИН'),
  74. (9, '2020-09-01', '41ЛИН'),
  75. (10, '2023-09-01', '11ПСИ'),
  76. (10, '2022-09-01', '21ПСИ'),
  77. (10, '2021-09-01', '31ПСИ'),
  78. (10, '2020-09-01', '41ПСИ');
  79. select id from Users where id_role = 1
  80. INSERT INTO Students (user_id, group_id) values
  81. (2,1),
  82. (3,1),
  83. (4,1),
  84. (6,1),
  85. (7,1),
  86. (8,3),
  87. (10,3),
  88. (11,3),
  89. (12,3),
  90. (14,3),
  91. (15,7),
  92. (16,7),
  93. (17,7),
  94. (19,7),
  95. (20,7);
  96. insert into Teachers values
  97. (1,1),
  98. (5,1),
  99. (9,2),
  100. (13,2),
  101. (18,3);
  102. INSERT INTO Disciplines (name, department_id, academic_hours)
  103. VALUES
  104. ('Программирование на Python', 1, 90),
  105. ('Математический анализ', 1, 120),
  106. ('Алгоритмы и структуры данных', 1, 100),
  107. ('Промышленная автоматизация', 1, 80),
  108. ('Веб-дизайн', 2, 80),
  109. ('Базы данных и SQL', 2, 100),
  110. ('Компьютерная безопасность', 2, 120),
  111. ('Системное программирование', 2, 90),
  112. ('История искусств', 3, 60),
  113. ('Социология', 3, 80),
  114. ('Психология', 3, 100),
  115. ('Философия', 3, 70);
  116. -- Заполнение таблицы TeachersDisciplines
  117. -- Преподаватель 1 (Александр Иванов)
  118. INSERT INTO TeachersDisciplines (teacher_id, discipline_id)
  119. VALUES
  120. (1, 1), -- Программирование на Python
  121. (1, 2), -- Математический анализ
  122. (1, 3), -- Алгоритмы и структуры данных
  123. (1, 4); -- Промышленная автоматизация
  124. -- Преподаватель 5 (Сергей Соколов)
  125. INSERT INTO TeachersDisciplines (teacher_id, discipline_id)
  126. VALUES
  127. (5, 1), -- Программирование на Python
  128. (5, 3), -- Алгоритмы и структуры данных
  129. (5, 4), -- Промышленная автоматизация
  130. (5, 8); -- Системное программирование
  131. -- Преподаватель 9 (Артем Морозов)
  132. INSERT INTO TeachersDisciplines (teacher_id, discipline_id)
  133. VALUES
  134. (9, 5), -- Веб-дизайн
  135. (9, 6), -- Базы данных и SQL
  136. (9, 7), -- Компьютерная безопасность
  137. (9, 8); -- Системное программирование
  138. -- Преподаватель 13 (Игорь Гончаров)
  139. INSERT INTO TeachersDisciplines (teacher_id, discipline_id)
  140. VALUES
  141. (13, 5), -- Веб-дизайн
  142. (13, 6), -- Базы данных и SQL
  143. (13, 7), -- Компьютерная безопасность
  144. (13, 8); -- Системное программирование
  145. -- Преподаватель 18 (Татьяна Беляева)
  146. INSERT INTO TeachersDisciplines (teacher_id, discipline_id)
  147. VALUES
  148. (18, 9), -- История искусств
  149. (18, 10), -- Социология
  150. (18, 11), -- Психология
  151. (18, 12); -- Философия
  152. -- Для преподавателя с ID 1 (Александр Иванов)
  153. -- Группа 11ИПО
  154. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  155. VALUES
  156. (1, 1, 1), -- Программирование на Python
  157. (1, 2, 1), -- Математический анализ
  158. (1, 3, 1), -- Алгоритмы и структуры данных
  159. (1, 4, 1); -- Промышленная автоматизация
  160. -- Группа 21ИПО
  161. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  162. VALUES
  163. (1, 1, 2), -- Программирование на Python
  164. (1, 2, 2), -- Математический анализ
  165. (1, 3, 2), -- Алгоритмы и структуры данных
  166. (1, 4, 2); -- Промышленная автоматизация
  167. -- Группа 31ИПО
  168. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  169. VALUES
  170. (1, 1, 3), -- Программирование на Python
  171. (1, 2, 3), -- Математический анализ
  172. (1, 3, 3), -- Алгоритмы и структуры данных
  173. (1, 4, 3); -- Промышленная автоматизация
  174. -- Группа 41ИПО
  175. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  176. VALUES
  177. (1, 1, 4), -- Программирование на Python
  178. (1, 2, 4), -- Математический анализ
  179. (1, 3, 4), -- Алгоритмы и структуры данных
  180. (1, 4, 4); -- Промышленная автоматизация
  181. -- Для преподавателя с ID 1 (Александр Иванов)
  182. -- Группа 31ИПО
  183. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  184. VALUES
  185. (1, 1, 3), -- Программирование на Python
  186. (1, 2, 3), -- Математический анализ
  187. (1, 3, 3), -- Алгоритмы и структуры данных
  188. (1, 4, 3); -- Промышленная автоматизация
  189. -- Группа 41ИПО
  190. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  191. VALUES
  192. (1, 1, 4), -- Программирование на Python
  193. (1, 2, 4), -- Математический анализ
  194. (1, 3, 4), -- Алгоритмы и структуры данных
  195. (1, 4, 4); -- Промышленная автоматизация
  196. -- Продолжаем аналогично для остальных групп.
  197. -- Для преподавателя с ID 5 (Сергей Соколов)
  198. -- Группа 31ИПО
  199. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  200. VALUES
  201. (1, 5, 3), -- Программирование на Python
  202. (1, 3, 3), -- Алгоритмы и структуры данных
  203. (1, 4, 3), -- Промышленная автоматизация
  204. (1, 8, 3); -- Системное программирование
  205. -- Группа 41ИПО
  206. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  207. VALUES
  208. (1, 5, 4), -- Программирование на Python
  209. (1, 3, 4), -- Алгоритмы и структуры данных
  210. (1, 4, 4), -- Промышленная автоматизация
  211. (1, 8, 4); -- Системное программирование
  212. -- Продолжаем аналогично для остальных групп.
  213. -- Для преподавателя с ID 9 (Артем Морозов)
  214. -- Группа 11АТП
  215. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  216. VALUES
  217. (1, 9, 5), -- Веб-дизайн
  218. (1, 10, 5), -- Базы данных и SQL
  219. (1, 11, 5), -- Компьютерная безопасность
  220. (1, 8, 5); -- Системное программирование
  221. -- Продолжаем аналогично для остальных групп.
  222. -- Для преподавателя с ID 13 (Игорь Гончаров)
  223. -- Группа 11АТП
  224. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  225. VALUES
  226. (1, 9, 5), -- Веб-дизайн
  227. (1, 10, 5), -- Базы данных и SQL
  228. (1, 11, 5), -- Компьютерная безопасность
  229. (1, 8, 5); -- Системное программирование
  230. -- Продолжаем аналогично для остальных групп.
  231. -- Для преподавателя с ID 18 (Татьяна Беляева)
  232. -- Группа 11САУ
  233. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  234. VALUES
  235. (1, 12, 9), -- Философия
  236. (1, 10, 9), -- Социология
  237. (1, 11, 9), -- Психология
  238. (1, 9, 9); -- История искусств
  239. -- Для преподавателя с ID 1 (Александр Иванов)
  240. -- Группа 41САУ
  241. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  242. VALUES
  243. (1, 1, 12), -- Программирование на Python
  244. (1, 2, 12), -- Математический анализ
  245. (1, 3, 12), -- Алгоритмы и структуры данных
  246. (1, 5, 12); -- Философия
  247. -- Группа 11ВПР
  248. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  249. VALUES
  250. (1, 1, 13), -- Программирование на Python
  251. (1, 2, 13), -- Математический анализ
  252. (1, 3, 13), -- Алгоритмы и структуры данных
  253. (1, 5, 13); -- Философия
  254. -- Продолжаем аналогично для остальных групп.
  255. -- Для преподавателя с ID 5 (Сергей Соколов)
  256. -- Группа 41САУ
  257. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  258. VALUES
  259. (1, 5, 12), -- Философия
  260. (1, 3, 12), -- Алгоритмы и структуры данных
  261. (1, 4, 12), -- Промышленная автоматизация
  262. (1, 6, 12); -- Компьютерная безопасность
  263. -- Группа 11ВПР
  264. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  265. VALUES
  266. (1, 5, 13), -- Философия
  267. (1, 3, 13), -- Алгоритмы и структуры данных
  268. (1, 4, 13), -- Промышленная автоматизация
  269. (1, 6, 13); -- Компьютерная безопасность
  270. -- Продолжаем аналогично для остальных групп.
  271. -- Для преподавателя с ID 9 (Артем Морозов)
  272. -- Группа 11БД
  273. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  274. VALUES
  275. (1, 10, 14), -- Базы данных и SQL
  276. (1, 11, 14), -- Компьютерная безопасность
  277. (1, 12, 14), -- Философия
  278. (1, 13, 14); -- История искусств
  279. -- Группа 21БД
  280. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  281. VALUES
  282. (1, 10, 15), -- Базы данных и SQL
  283. (1, 11, 15), -- Компьютерная безопасность
  284. (1, 12, 15), -- Философия
  285. (1, 13, 15); -- История искусств
  286. -- Продолжаем аналогично для остальных групп.
  287. -- Для преподавателя с ID 13 (Игорь Гончаров)
  288. -- Группа 11БД
  289. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  290. VALUES
  291. (1, 10, 14), -- Базы данных и SQL
  292. (1, 11, 14), -- Компьютерная безопасность
  293. (1, 12, 14), -- Философия
  294. (1, 13, 14); -- История искусств
  295. -- Продолжаем аналогично для остальных групп.
  296. -- Для преподавателя с ID 18 (Татьяна Беляева)
  297. -- Группа 11ЛИН
  298. INSERT INTO GroupDiscipline (semester, teacher_discipline_id, group_id)
  299. VALUES
  300. (1, 9, 19), -- Веб-дизайн
  301. (1, 10, 19), -- Базы данных и SQL
  302. (1, 11, 19), -- Компьютерная безопасность
  303. (1, 12, 19); -- Философия
  304. INSERT INTO Buildings (Mgr, address) VALUES
  305. (1, 'ул. Пушкина, д. 10'),
  306. (5, 'пр. Ленина, д. 25');
  307. ALTER TABLE Timetables
  308. RENAME COLUMN buildind_id TO building_id;
  309. -- Для преподавателя с ID 1 (Александр Иванов)
  310. -- Понедельник
  311. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  312. VALUES
  313. ('2024-09-02', 1, 1, 1), -- 9:00-10:30 Программирование на Python
  314. ('2024-09-02', 2, 1, 1), -- 10:45-12:15 Математический анализ
  315. ('2024-09-02', 3, 1, 1), -- 12:30-14:00 Алгоритмы и структуры данных
  316. ('2024-09-02', 4, 1, 1); -- 14:30-16:00 Промышленная автоматизация
  317. -- Вторник
  318. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  319. VALUES
  320. ('2024-09-03', 1, 1, 1), -- 9:00-10:30 Программирование на Python
  321. ('2024-09-03', 2, 1, 1), -- 10:45-12:15 Математический анализ
  322. ('2024-09-03', 3, 1, 1), -- 12:30-14:00 Алгоритмы и структуры данных
  323. ('2024-09-03', 4, 1, 1); -- 14:30-16:00 Промышленная автоматизация
  324. -- Продолжаем аналогично для остальных дней и преподавателей.
  325. -- Для преподавателя с ID 5 (Сергей Соколов)
  326. -- Понедельник
  327. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  328. VALUES
  329. ('2024-09-02', 1, 2, 1), -- 9:00-10:30 Программирование на Python
  330. ('2024-09-02', 2, 2, 1), -- 10:45-12:15 Алгоритмы и структуры данных
  331. ('2024-09-02', 3, 2, 1), -- 12:30-14:00 Промышленная автоматизация
  332. ('2024-09-02', 4, 2, 1); -- 14:30-16:00 Системное программирование
  333. -- Вторник
  334. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  335. VALUES
  336. ('2024-09-03', 1, 2, 1), -- 9:00-10:30 Программирование на Python
  337. ('2024-09-03', 2, 2, 1), -- 10:45-12:15 Алгоритмы и структуры данных
  338. ('2024-09-03', 3, 2, 1), -- 12:30-14:00 Промышленная автоматизация
  339. ('2024-09-03', 4, 2, 1); -- 14:30-16:00 Системное программирование
  340. -- Продолжаем аналогично для остальных дней и преподавателей.
  341. -- Для преподавателя с ID 9 (Артем Морозов)
  342. -- Понедельник
  343. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  344. VALUES
  345. ('2024-09-02', 1, 3, 1), -- 9:00-10:30 Веб-дизайн
  346. ('2024-09-02', 2, 3, 1), -- 10:45-12:15 Базы данных и SQL
  347. ('2024-09-02', 3, 3, 1), -- 12:30-14:00 Компьютерная безопасность
  348. ('2024-09-02', 4, 3, 1); -- 14:30-16:00 Системное программирование
  349. -- Вторник
  350. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  351. VALUES
  352. ('2024-09-03', 1, 3, 1), -- 9:00-10:30 Веб-дизайн
  353. ('2024-09-03', 2, 3, 1), -- 10:45-12:15 Базы данных и SQL
  354. ('2024-09-03', 3, 3, 1), -- 12:30-14:00 Компьютерная безопасность
  355. ('2024-09-03', 4, 3, 1); -- 14:30-16:00 Системное программирование
  356. -- Для преподавателя с ID 13 (Игорь Гончаров)
  357. -- Понедельник
  358. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  359. VALUES
  360. ('2024-09-02', 1, 4, 1), -- 9:00-10:30 Программирование на Java
  361. ('2024-09-02', 2, 4, 1), -- 10:45-12:15 Веб-дизайн
  362. ('2024-09-02', 3, 4, 1), -- 12:30-14:00 Базы данных и SQL
  363. ('2024-09-02', 4, 4, 1); -- 14:30-16:00 Компьютерная безопасность
  364. -- Вторник
  365. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  366. VALUES
  367. ('2024-09-03', 1, 4, 1), -- 9:00-10:30 Программирование на Java
  368. ('2024-09-03', 2, 4, 1), -- 10:45-12:15 Веб-дизайн
  369. ('2024-09-03', 3, 4, 1), -- 12:30-14:00 Базы данных и SQL
  370. ('2024-09-03', 4, 4, 1); -- 14:30-16:00 Компьютерная безопасность
  371. -- Продолжаем аналогично для остальных дней и преподавателей.
  372. -- Для преподавателя с ID 18 (Татьяна Беляева)
  373. -- Понедельник
  374. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  375. VALUES
  376. ('2024-09-02', 1, 5, 1), -- 9:00-10:30 История искусств
  377. ('2024-09-02', 2, 5, 1), -- 10:45-12:15 Лингвистика
  378. ('2024-09-02', 3, 5, 1), -- 12:30-14:00 Психология
  379. ('2024-09-02', 4, 5, 1); -- 14:30-16:00 Социология
  380. -- Вторник
  381. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  382. VALUES
  383. ('2024-09-03', 1, 5, 1), -- 9:00-10:30 История искусств
  384. ('2024-09-03', 2, 5, 1), -- 10:45-12:15 Лингвистика
  385. ('2024-09-03', 3, 5, 1), -- 12:30-14:00 Психология
  386. ('2024-09-03', 4, 5, 1); -- 14:30-16:00 Социология
  387. -- Продолжаем аналогично для остальных дней и преподавателей.
  388. -- Для преподавателя с ID 1 (Александр Иванов)
  389. -- Понедельник
  390. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  391. VALUES
  392. ('2024-09-02', 1, 1, 2), -- 9:00-10:30 Программирование на Python
  393. ('2024-09-02', 2, 1, 2), -- 10:45-12:15 Математический анализ
  394. ('2024-09-02', 3, 1, 2), -- 12:30-14:00 Алгоритмы и структуры данных
  395. ('2024-09-02', 4, 1, 2); -- 14:30-16:00 Промышленная автоматизация
  396. -- Вторник
  397. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  398. VALUES
  399. ('2024-09-03', 1, 1, 2), -- 9:00-10:30 Программирование на Python
  400. ('2024-09-03', 2, 1, 2), -- 10:45-12:15 Математический анализ
  401. ('2024-09-03', 3, 1, 2), -- 12:30-14:00 Алгоритмы и структуры данных
  402. ('2024-09-03', 4, 1, 2); -- 14:30-16:00 Промышленная автоматизация
  403. -- Продолжаем аналогично для остальных дней и преподавателей.
  404. -- Для преподавателя с ID 5 (Сергей Соколов)
  405. -- Вторник
  406. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  407. VALUES
  408. ('2024-09-03', 1, 2, 2), -- 9:00-10:30 Программирование на Python
  409. ('2024-09-03', 2, 2, 2), -- 10:45-12:15 Алгоритмы и структуры данных
  410. ('2024-09-03', 3, 2, 2), -- 12:30-14:00 Промышленная автоматизация
  411. ('2024-09-03', 4, 2, 2); -- 14:30-16:00 Системное программирование
  412. -- Продолжаем аналогично для остальных дней и преподавателей.
  413. -- Для преподавателя с ID 9 (Артем Морозов)
  414. -- Вторник
  415. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  416. VALUES
  417. ('2024-09-03', 1, 3, 2), -- 9:00-10:30 Веб-дизайн
  418. ('2024-09-03', 2, 3, 2), -- 10:45-12:15 Базы данных и SQL
  419. ('2024-09-03', 3, 3, 2), -- 12:30-14:00 Компьютерная безопасность
  420. ('2024-09-03', 4, 3, 2); -- 14:30-16:00 Системное программирование
  421. -- Для преподавателя с ID 13 (Игорь Гончаров)
  422. -- Вторник
  423. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  424. VALUES
  425. ('2024-09-03', 1, 4, 2), -- 9:00-10:30 Программирование на Java
  426. ('2024-09-03', 2, 4, 2), -- 10:45-12:15 Веб-дизайн
  427. ('2024-09-03', 3, 4, 2), -- 12:30-14:00 Базы данных и SQL
  428. ('2024-09-03', 4, 4, 2); -- 14:30-16:00 Компьютерная безопасность
  429. -- Для преподавателя с ID 18 (Татьяна Беляева)
  430. -- Вторник
  431. INSERT INTO Timetables (class_date, class_number, group_discipline_id, building_id)
  432. VALUES
  433. ('2024-09-03', 1, 5, 2), -- 9:00-10:30 История искусств
  434. ('2024-09-03', 2, 5, 2), -- 10:45-12:15 Лингвистика
  435. ('2024-09-03', 3, 5, 2), -- 12:30-14:00 Психология
  436. ('2024-09-03', 4, 5, 2); -- 14:30-16:00 Социология
  437. INSERT INTO StudentGrades (student_id, group_discipline_id, graded_at, grade, work_name)
  438. SELECT
  439. s.user_id,
  440. gd.id,
  441. now() - interval '1' month * (random() * 12 + 1), -- Случайная дата за последние 12 месяцев
  442. floor(random() * 4) + 2, -- Случайная оценка от 2 до 5
  443. CASE floor(random() * 4)
  444. WHEN 0 THEN 'Контрольная работа'
  445. WHEN 1 THEN 'Экзамен'
  446. WHEN 2 THEN 'Лабораторная работа'
  447. ELSE 'Курсовая работа'
  448. END
  449. FROM
  450. Students s
  451. JOIN
  452. "Groups" g ON s.group_id = g.id
  453. JOIN
  454. GroupDiscipline gd ON g.id = gd.group_id;
  455. -- Заполняем таблицу Attendance для всех студентов и их дисциплин, учитывая группу студента
  456. INSERT INTO Attendance (timetable_id, student_id, attended)
  457. SELECT
  458. tt.id,
  459. s.user_id,
  460. CASE floor(random() * 2)
  461. WHEN 0 THEN true -- Случайно выбираем, посетил ли студент занятие
  462. ELSE false
  463. END
  464. FROM
  465. Timetables tt
  466. JOIN
  467. GroupDiscipline gd ON tt.group_discipline_id = gd.id
  468. JOIN
  469. Students s ON gd.group_id = s.group_id;