Базы данных: конспект лекций

ОглавлениеДобавить в закладки К обложке

позволяет выделить из отношения «Сессия» те кортежи, которые относятся к рассматриваемому предмету, т. е. к базам данных.

Интересно, что этот внутренний подзапрос может возвращать не более одного значения, так как атрибут «Имя предмета» является ключом отношения «Предметы», т. е. все его значения уникальны.

А весь запрос «Оценки „Базы данных“ позволяет выделить из отношения «Сессия» данные о тех студентах (их номера зачетных книжек и оценки), которые удовлетворяют условию, оговоренному в подзапросе, т. е. информацию о предмете под названием «База данных».

Теперь составим основной запрос, используя уже полученные результаты.

SelectСтуденты. № зачетной книжки,

Trim (Фамилия) + « » + Left (Имя, 1) + «.» + Left (Отчество, 1) + «.»asФИО, Оценки «Базы данных». Оценка

FromСтудентыinner join

(

Select № зачетной книжки, Оценка

FromСессия

WhereКод предмета = (SelectКод предмета

FromПредметы

WhereИмя предмета = «Базы данных»)

) as«Оценки „Базы данных“.

onСтуденты. № зачетной книжки = Оценки «Базы данных». № зачетной книжки.

Итак, сначала мы перечисляем атрибуты, которые будет необходимо вывести, после окончания работы запроса. Необходимо упомянуть, что атрибут «№ зачетной книжки» из отношения Студенты, оттуда же – атрибуты «Фамилия», «Имя» и «Отчество». Правда, два последних атрибута выводим не полностью, а только первые буквы. Также мы упоминаем атрибут «Оценка» из запроса Оценки «Базы данных, которое ввели раньше.

Выбираем мы все эти атрибуты из внутреннего соединения отношения «Студенты» и запроса «Оценки „Базы данных“. Это внутреннее соединение, как мы можем видеть, берется нами по условию равенства номеров зачетной книжки. В результате этой операции внутреннего соединения, к отношению «Студенты» добавляются оценки.

Надо заметить, что так как атрибуты «Фамилия», «Имя» и «Отчество» по условию не допускают Null-значений и не являются пустыми, то формула вычисления, возвращающая атрибут «ФИО» (Trim (Фамилия) + « » + Left (Имя, 1) + «.» + Left (Отчество, 1) + «.»as ФИО), соответственно не требует дополнительных проверок, упрощается.


Логин
Пароль
Запомнить меня