CREATE TABLE students( id SERIAL PRIMARY KEY, student_name VARCHAR(20) ); CREATE TABLE exams( id INTEGER GENERATED ALWAYS AS IDENTITY (START WITH 101 INCREMENT 1) PRIMARY KEY, exam_name VARCHAR(20) ); CREATE TABLE study_halls( id SERIAL PRIMARY KEY, study_hall_name VARCHAR(30), exam_id INTEGER, CONSTRAINT fk_study_halls_exams FOREIGN KEY (exam_id) REFERENCES exams(id) ); CREATE TABLE students_exams( student_id INT, exam_id INT, CONSTRAINT pk_students_exams PRIMARY KEY (student_id, exam_id), CONSTRAINT fk_students_exams_students FOREIGN KEY (student_id) REFERENCES students(id), CONSTRAINT fk_students_exams_exams FOREIGN KEY (exam_id) REFERENCES exams(id) ); INSERT INTO students(student_name) VALUES ('Mila'), ('Toni'), ('Ron'); INSERT INTO exams(exam_name) VALUES ('Python Advanced'), ('Python OOP'), ('PostgreSQL'); INSERT INTO study_halls(study_hall_name, exam_id) VALUES ('Open Source Hall', 102), ('Inspiration Hall', 101), ('Creative Hall', 103), ('Masterclass Hall', 103), ('Information Security Hall', 103); INSERT INTO students_exams VALUES (1, 101), (1, 102), (2, 101), (3, 103), (2, 102), (2, 103);