Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Методические указания ИПС новая1.doc
Скачиваний:
4
Добавлен:
01.05.2025
Размер:
1.34 Mб
Скачать

Контрольные упражнения

Написать запросы к вышеприведенной базе данных:

  1. Вывести список всех дисциплин (без повторений), по которым проводятся экзамены

  2. Вывести список студентов, которые имеют оценку “3” по ОС.

  3. Вывести список студентов, которые не сдавали дисциплину по ИПС

6.Функции агрегирования в sql- запросах

В SQL добавлены дополнительные функции, которые позволяют вычислять обобщенные групповые значения. Для применения агрегатных функций предполагается предварительная операция группировки. В чем состоит суть операции группировки? При группировке все множество кортежей отношения разбивается на группы, в которых собираются кортежи, имеющие одинаковые значения атрибутов, которые заданы в списке группировки. Например, если сгруппировать отношение R1 по значению столбца Дисциплина, то получим 4 группы, для которых можем вычислить некоторые групповые значения, например количество кортежей в группе, максимальное или минимальное значение столбца Оценка.

Это делается с помощью агрегатных функций.

Вычислим количество студентов, сдавших экзамены по каждой дисциплине:

Select Дисциплина, count (Дисциплина)

From R1

Group by Дисциплина;

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

SELECT count(*)

FROM R1

WHERE Оценка<>2;

Контрольные упражнения

Написать запросы к вышеприведенной базе данных:

  1. Найти максимальный бал, полученный студентом Ивлевым.

  2. Количество студентов, сдавшие дисциплину “БД”

  3. Вывести средний бал оценок, полученный каждым студентом

7.Использование вложенных запросов

С помощью SQL можно вкладывать запросы внутрь друг друга. Обычно внутренний запрос генерирует значение, которое проверяется в предикате внешнего запроса (в предложении Where или Having), определяющего, верно оно или нет. Совместно с подзапросом можно использовать предикат Exists, который возвращает истину, если вывод подзапроса не пуст.

Найдем список тех студентов, кто должен бал сдавать экзамен по БД, но пока еще не сдавал:

Select ФИО

From R2 as a, R3

Where R2.Группа=R3.Группа and Дисциплина=”БД” and not exists (select ФИО

From R1

Where ФИО=a.ФИО and Дисциплина=”БД”)

При использовании подзапроса, основанных на операциях сравнений, нужно быть уверенным, что подзапрос возвращает единственное значение.

В общем, работа с подзапросами осуществляется в следующие этапы:

1. Выбирается кортеж из таблицы, имя которой указанно во внешнем запросе.

2. Выполняется подзапрос и полученное значение применяется для анализа этой строки в условии оператора where внешнего запроса.

3. По результату оценки условия применяется решение о включении или не включении строки в состав выходных данных.

4. Процедура выполняется для следующей строки таблицы внешнего запроса.