Разобрали ответы и решения урока 3.2(База данных «Тестирование», запросы корректировки) под курс «Интерактивный тренажер по SQL».
Предыдущий разбор модуля 3.1 следующий разбор модуль 3.3
В таблицу
attemptвключить новую попытку для студента Баранова Павла по дисциплине «Основы баз данных». Установить текущую дату в качестве даты выполнения попытки.
INSERT INTO attempt(student_id, subject_id, date_attempt)
SELECT
(SELECT student_id FROM student WHERE name_student = 'Баранов Павел'),
(SELECT subject_id FROM subject WHERE name_subject = 'Основы баз данных'),
NOW(); Случайным образом выбрать три вопроса (запрос) по дисциплине, тестирование по которой собирается проходить студент, занесенный в таблицу
attemptпоследним, и добавить их в таблицуtesting.idпоследней попытки получить как максимальное значениеidиз таблицыattempt.
INSERT INTO testing (attempt_id, question_id)
SELECT attempt_id, question_id
FROM question
JOIN attempt USING(subject_id)
WHERE attempt_id = (SELECT MAX(attempt_id) FROM attempt)
ORDER BY RAND()
limit 3; Студент прошел тестирование (то есть все его ответы занесены в таблицу testing), далее необходимо вычислить результат(запрос) и занести его в таблицу attempt для соответствующей попытки. Результат попытки вычислить как количество правильных ответов, деленное на 3 (количество вопросов в каждой попытке) и умноженное на 100. Результат округлить до целого.
Будем считать, что мы знаем id попытки, для которой вычисляется результат, в нашем случае это 8. В таблицу testing занесены следующие ответы пользователя:
UPDATE attempt
SET result = (SELECT ROUND((SUM(is_correct)/3)*100, 2)
FROM answer INNER JOIN testing ON answer.answer_id = testing.answer_id
WHERE testing.attempt_id = 8)
WHERE attempt.attempt_id = 8; Удалить из таблицы
attemptвсе попытки, выполненные раньше 1 мая 2020 года. Также удалить и все соответствующие этим попыткам вопросы из таблицыtesting, которая создавалась следующим запросом:
DELETE FROM attempt
WHERE date_attempt < '2020-05-01'; Придумайте один или несколько запросов корректировки данных для предметной области «Тестирование» (в таблицы занесены данные, как на первом шаге урока). Проверьте, правильно ли они работают.
SELECT *
FROM attempt; Если у вас не отображается решение последних задач, значит у вас включен блокировщик рекламы который вырезает эти ответы