Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Вопр_Госэкз_2012.docx
Скачиваний:
33
Добавлен:
15.05.2015
Размер:
587.81 Кб
Скачать

Построение sql-запросов

Провести анализ структуры базы данных «STUDIUM» (рис. 1).

Рис. 1 – Реляционная модель базы данных «STUDIUM»

Описание полей таблицы STUDENT (СТУДЕНТ):

STUDENT_ID — числовой код, идентифицирующий студента (int),

SURNAME — фамилия студента (varchar(20)),

NAME — имя студента (varchar(15)),

STIPEND — стипендия, которую получает студент (smallmoney),

KURS — курс, на котором учится студент (int),

CITY — город, в котором живет студент (varchar(10)),

BIRTHDAY — дата рождения студента (datetime),

UNIV_ID— числовой код, идентифицирующий университет, в котором учится студент (int).

Описание полей таблицы LECTURER (ПРЕПОДАВАТЕЛЬ):

LECTURER_ID — числовой код, идентифицирующий преподавателя (int),

SURNAME — фамилия преподавателя (varchar(20)),

NAME — имя преподавателя (varchar(15)),

CITY — город, в котором живет преподаватель (varchar(10)),

UNIV_ID — идентификатор университета, в котором работает преподаватель (int).

Описание полей таблицы SUBJECT (ПРЕДМЕТ ОБУЧЕНИЯ):

SUBJ_ID — идентификатор предмета обучения (int),

SUBJ_NAME — наименование предмета обучения (varchar(20)),

HOUR — количество часов, отводимых на изучение предмета (int),

SEMESTER — семестр, в котором изучается данный предмет (int).

Описание полей таблицы UNIVERSITY (УНИВЕРСИТЕТЫ):

UNIV_ID — идентификатор университета (int),

UNIV_NAME — название университета (varchar(20)),

RATING — рейтинг университета (int),

CITY — город, в котором расположен университет (varchar(10)).

Описание полей таблицы EXAM_MARKS (ЭКЗАМЕНАЦИОННЫЕ ОЦЕНКИ):

EXAM_ID — идентификатор экзамена (int),

STUDENT_ID — идентификатор студента (int),

SUBJ_ID — идентификатор предмета обучения (int),

MARK — экзаменационная оценка (int),

EXAM DATE — дата экзамена (datatime).

Описание полей таблицы SUBJ_LECT (УЧЕБНЫЕ ДИСЦИПЛИНЫ ПРЕПОДАВАТЕЛЕЙ):

LECTURER_ID — идентификатор преподавателя (int),

SUBJ ID — идентификатор предмета обучения (int).

Согласно варианту задания построить SQL-запрос к базе данных на основе имеющихся записей в таблицах, представленных ниже.

Таблица STUDENT

Таблица LECTURER Таблица SUBJECT

Таблица UNIVERSITY Таблица EXAM_MARKS

Таблица SUBJ_LECT

Варианты запросов к базе данных:

1. Напишите запрос для определения количества изучаемых предметов на каждом курсе.

2. Напишите запрос для определения количества студентов, сдававших каждый экзамен.

3. Напишите запрос для получения среднего балла для каждого экзамена.

4. Напишите запрос для получения среднего балла для каждого студента.

5. Напишите запрос, который выполняет вывод данных для каждого конкретного дня сдачи экзамена о количестве студентов, сдававших экзамен в этот день.

6. Напишите запрос, осуществляющий выборку для каждого студента значения его идентификатора и максимальной из полученных им оценок.

7. Напишите запрос, который выполняет выборку для каждого студента значения его идентификатора и минимальной из полученных им оценок

8. Напишите запрос, который выполняет вывод суммы баллов всех студентов для каждой даты сдачи экзаменов и представляет результаты в порядке убывания этих сумм.

9. Напишите запрос, который по таблице EXAM_MARKS позволяет найти а) максимальные и б) минимальные оценки каждого студента и который выводит их вместе с идентификатором студента.

10. Напишите запрос, выполняющий вывод списка предметов обучения в порядке а) убывания семестров и б) возрастания отводимых на предмет часов. Поле семестра в выходных данных должно быть первым, за ним должны следовать имя предмета обучения и идентификатор предмета.

11. Напишите запрос, выполняющий вывод фамилии первого в алфавитном порядке (по фамилии) студента, фамилия которого начинается на букву «И».

12. Напишите запрос, выбирающий данные о названиях университетов, рейтинг которых равен или превосходит рейтинг Воронежского государственного университета.

13. Напишите запрос, выбирающий из таблицы EXAM_MARKS данные

о названиях предметов обучения, для которых значение полученных на экзамене оценок (поле MARK) превышает любое значение оценки для предмета, имеющего идентификатор, равный 105.

14. Напишите запрос выполняющий выборку данных о студентах, у которых в городе их постоянного местожительства нет университета.

15. Напишите запрос, который выполняет выборку значений фамилии всех студентов с указанием для студентов, сдававших экзамены, идентификаторов сданных ими предметов обучения.

16. Напишите запрос, который выполняет вывод данных о фамилиях студентов, сдававших экзамены, вместе с наименованиями каждого сданного ими предмета обучения.

17. Напишите запрос на выдачу для каждого студента названий всех предметов обучения, по которым этот студент получил оценку 4 или 5.

18. Напишите запрос на выдачу данных о названиях всех предметов, по которым студенты получили только хорошие (4 и 5) оценки. В выходных данных должны быть приведены фамилии студентов, названия предметов и оценка.

19. Напишите запрос, который выполняет вывод списка университетов с рейтингом, превышающим 300, вместе со значением максимального размера стипендии, получаемой студентами в этих университетах.

20. Напишите команду, которая вводит в таблицу SUBJECT строку для нового предмета обучения со следующими значениями полей:

SEMESTER = 4; SUBJ_NAME = ‘Алгебра’; HOUR = 72; SUBJ_ID =201.

21. Напишите команду, удаляющую из таблицы EXAM_MARKS записи обо всех оценках студента, идентификатор которого равен 100.

22. Измените в таблице значение города, в котором проживает студент Иванов, на «Воронеж».

23. Напишите команду, удаляющую из таблицы SUBJECTI сведения о предметах обучения, по которым студентами не получено ни одной оценки.

24. Напишите запрос, увеличивающий данные о величине стипендии на 20% всем студентам, у которых общая сумма баллов превышает значение 50.