Загрузка данных
CREATE DATABASE IF NOT EXISTS ExamUniversity;
USE ExamUniversity;
-- Таблица Дисциплины
CREATE TABLE Дисциплины (
id_дисциплины INT PRIMARY KEY AUTO_INCREMENT,
название VARCHAR(100) NOT NULL
);
-- Таблица Вопросы
CREATE TABLE Вопросы (
id_вопроса INT PRIMARY KEY AUTO_INCREMENT,
вопрос TEXT NOT NULL,
id_дисциплины INT NOT NULL,
раздел CHAR(1),
FOREIGN KEY (id_дисциплины) REFERENCES Дисциплины(id_дисциплины)
);
-- Таблица Ответы
CREATE TABLE Ответы (
id_ответа INT PRIMARY KEY AUTO_INCREMENT,
описание TEXT NOT NULL,
верный TINYINT(1) NOT NULL,
id_вопроса INT NOT NULL,
FOREIGN KEY (id_вопроса) REFERENCES Вопросы(id_вопроса)
);
-- Таблица Варианты
CREATE TABLE Варианты (
id_варианта INT PRIMARY KEY AUTO_INCREMENT,
номер_варианта INT NOT NULL,
id_вопроса INT NOT NULL,
id_дисциплины INT NOT NULL,
FOREIGN KEY (id_вопроса) REFERENCES Вопросы(id_вопроса),
FOREIGN KEY (id_дисциплины) REFERENCES Дисциплины(id_дисциплины)
);
-- Таблица Тема
CREATE TABLE Тема (
id_темы INT PRIMARY KEY AUTO_INCREMENT,
id_дисциплины INT NOT NULL,
номер_темы INT NOT NULL,
id_вопроса INT NOT NULL,
FOREIGN KEY (id_дисциплины) REFERENCES Дисциплины(id_дисциплины),
FOREIGN KEY (id_вопроса) REFERENCES Вопросы(id_вопроса)
);
-- Таблица Студенты (нужна для заданий 2-4, 6-7, 10-11)
CREATE TABLE Студенты (
id_студента INT PRIMARY KEY AUTO_INCREMENT,
фамилия VARCHAR(50) NOT NULL,
имя VARCHAR(50) NOT NULL,
курс INT NOT NULL
);
-- Таблица Экзамены (нужна для заданий 8-9)
CREATE TABLE Экзамены (
id_экзамена INT PRIMARY KEY AUTO_INCREMENT,
id_студента INT NOT NULL,
id_дисциплины INT NOT NULL,
оценка TINYINT NOT NULL,
FOREIGN KEY (id_студента) REFERENCES Студенты(id_студента),
FOREIGN KEY (id_дисциплины) REFERENCES Дисциплины(id_дисциплины)
);
-- Дисциплины
INSERT INTO Дисциплины (название) VALUES
('Математика'),
('Физика'),
('Информатика'),
('История'),
('Химия');
-- Вопросы
INSERT INTO Вопросы (вопрос, id_дисциплины, раздел) VALUES
('Что такое производная?', 1, 'A'),
('Второй закон Ньютона?', 2, 'A'),
('Что такое переменная в программе?', 3, 'B'),
('Год основания Москвы?', 4, 'A'),
('Формула воды?', 5, 'B');
-- Ответы
INSERT INTO Ответы (описание, верный, id_вопроса) VALUES
('Предел отношения приращения функции', 1, 1),
('F = ma', 1, 2),
('Именованная область памяти', 1, 3),
('1147 год', 1, 4),
('H2O', 1, 5);
-- Варианты
INSERT INTO Варианты (номер_варианта, id_вопроса, id_дисциплины) VALUES
(1, 1, 1),
(1, 2, 2),
(2, 3, 3),
(2, 4, 4),
(3, 5, 5);
-- Тема
INSERT INTO Тема (id_дисциплины, номер_темы, id_вопроса) VALUES
(1, 1, 1),
(2, 1, 2),
(3, 2, 3),
(4, 1, 4),
(5, 3, 5);
-- Студенты
INSERT INTO Студенты (фамилия, имя, курс) VALUES
('Иванов', 'Алексей', 1),
('Петрова', 'Мария', 2),
('Сидоров', 'Дмитрий', 2),
('Козлова', 'Ольга', 3),
('Новиков', 'Иван', 4);
-- Экзамены
INSERT INTO Экзамены (id_студента, id_дисциплины, оценка) VALUES
(1, 1, 4),
(2, 1, 5),
(3, 2, 3),
(4, 3, 5),
(5, 4, 4);
SELECT * FROM Дисциплины;
SELECT *
FROM Студенты
WHERE курс = 2;
SELECT *
FROM Студенты
LIMIT 3;
SELECT *
FROM Студенты
WHERE курс BETWEEN 1 AND 4;
INSERT INTO Дисциплины (название)
VALUES ('Биология');
SELECT COUNT(*) AS всего_студентов
FROM Студенты;
SELECT COUNT(*) AS студентов_на_2_курсе
FROM Студенты
WHERE курс = 2;
SELECT MAX(оценка) AS максимальная_оценка
FROM Экзамены;
SELECT AVG(оценка) AS средняя_оценка
FROM Экзамены
WHERE id_дисциплины = 1;
SELECT курс,
COUNT(*) AS количество_студентов
FROM Студенты
GROUP BY курс
ORDER BY курс ASC;
DELETE FROM Студенты
WHERE id_студента = 5;