Первоначальная реализация
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
-- Инициализационный скрипт для PostgreSQL для учебных упражнений
|
||||
|
||||
-- Создание таблицы студентов
|
||||
CREATE TABLE IF NOT EXISTS students (
|
||||
student_id SERIAL PRIMARY KEY,
|
||||
first_name VARCHAR(50),
|
||||
last_name VARCHAR(50),
|
||||
email VARCHAR(100),
|
||||
enrollment_date DATE,
|
||||
grade INTEGER
|
||||
);
|
||||
|
||||
-- Создание таблицы курсов
|
||||
CREATE TABLE IF NOT EXISTS courses (
|
||||
course_id SERIAL PRIMARY KEY,
|
||||
course_name VARCHAR(100),
|
||||
instructor VARCHAR(100),
|
||||
credits INTEGER
|
||||
);
|
||||
|
||||
-- Создание таблицы зачислений
|
||||
CREATE TABLE IF NOT EXISTS enrollments (
|
||||
enrollment_id SERIAL PRIMARY KEY,
|
||||
student_id INTEGER REFERENCES students(student_id),
|
||||
course_id INTEGER REFERENCES courses(course_id),
|
||||
enrollment_date DATE,
|
||||
grade CHAR(1)
|
||||
);
|
||||
|
||||
-- Вставка тестовых данных
|
||||
INSERT INTO students (first_name, last_name, email, enrollment_date, grade) VALUES
|
||||
('Alice', 'Johnson', 'alice@example.com', '2023-09-01', 85),
|
||||
('Bob', 'Smith', 'bob@example.com', '2023-09-01', 92),
|
||||
('Charlie', 'Brown', 'charlie@example.com', '2023-09-01', 78),
|
||||
('Diana', 'Prince', 'diana@example.com', '2023-09-01', 96),
|
||||
('Eve', 'Wilson', 'eve@example.com', '2023-09-01', 8)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO courses (course_name, instructor, credits) VALUES
|
||||
('Introduction to Data Science', 'Dr. Smith', 3),
|
||||
('Python Programming', 'Dr. Johnson', 4),
|
||||
('Database Systems', 'Dr. Williams', 3),
|
||||
('Machine Learning', 'Dr. Brown', 4)
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
INSERT INTO enrollments (student_id, course_id, enrollment_date, grade) VALUES
|
||||
(1, 1, '2023-09-01', 'A'),
|
||||
(1, 2, '2023-09-01', 'B'),
|
||||
(2, 1, '2023-09-01', 'A'),
|
||||
(2, 3, '2023-09-01', 'A'),
|
||||
(3, 2, '2023-09-01', 'B'),
|
||||
(4, 4, '2023-09-01', 'A'),
|
||||
(5, 1, '2023-09-01', 'A')
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- Создание индексов для улучшения производительности
|
||||
CREATE INDEX IF NOT EXISTS idx_students_email ON students(email);
|
||||
CREATE INDEX IF NOT EXISTS idx_enrollments_student ON enrollments(student_id);
|
||||
CREATE INDEX IF NOT EXISTS idx_enrollments_course ON enrollments(course_id);
|
||||
Reference in New Issue
Block a user