Базы данных: конспект лекций
Шрифт:
Применение здесь опции as означает, что мы присвоили этому запросу псевдоним «Оценки „Базы данных“. Сделали мы это для удобства дальнейшей работы с этим запросом.
Далее, в этом запросе подзапрос:
SelectКод предмета
FromПредметы
WhereИмя предмета = «Базы данных»;
позволяет выделить из отношения «Сессия» те кортежи, которые относятся к рассматриваемому
Интересно, что этот внутренний подзапрос может возвращать не более одного значения, так как атрибут «Имя предмета» является ключом отношения «Предметы», т. е. все его значения уникальны.
А весь запрос «Оценки „Базы данных“ позволяет выделить из отношения «Сессия» данные о тех студентах (их номера зачетных книжек и оценки), которые удовлетворяют условию, оговоренному в подзапросе, т. е. информацию о предмете под названием «База данных».
Теперь составим основной запрос, используя уже полученные результаты.
SelectСтуденты. № зачетной книжки,
Trim (Фамилия) + « » + Left (Имя, 1) + «.» + Left (Отчество, 1) + «.»asФИО, Оценки «Базы данных». Оценка
FromСтудентыinner join
(
Select № зачетной книжки, Оценка
FromСессия
WhereКод предмета = (SelectКод предмета
FromПредметы
WhereИмя предмета = «Базы данных»)
) as«Оценки „Базы данных“.
onСтуденты. № зачетной книжки = Оценки «Базы данных». № зачетной книжки.
Итак, сначала мы перечисляем атрибуты, которые будет необходимо вывести, после окончания работы запроса. Необходимо упомянуть, что атрибут «№ зачетной книжки» из отношения Студенты, оттуда же – атрибуты «Фамилия», «Имя» и «Отчество». Правда, два последних атрибута выводим не полностью, а только первые буквы. Также мы упоминаем атрибут «Оценка» из запроса Оценки «Базы данных, которое ввели раньше.
Выбираем мы все эти атрибуты из внутреннего соединения отношения «Студенты» и запроса «Оценки „Базы данных“. Это внутреннее соединение, как мы можем видеть, берется нами по условию равенства номеров зачетной книжки. В результате этой операции внутреннего соединения, к отношению «Студенты» добавляются оценки.
Надо заметить, что так как атрибуты «Фамилия», «Имя» и «Отчество» по условию не допускают Null-значений и не являются
Лекция № 7. Базовые отношения
Как мы уже знаем, базы данных – это как бы своеобразный контейнер, основное предназначение которого заключается в хранении данных, представленных в виде отношений.
Необходимо знать, что в зависимости от своей природы и структуры, отношения делятся на:
1) базовые отношения;
2) виртуальные отношения.
Отношения базового вида содержат только независимые данные и не могут быть выражены через какие-либо другие отношения баз данных.
В коммерческих системах управления базами данных базовые отношения обычно называются просто таблицами в отличие от представлений, соответствующих понятию виртуальных отношений. В данном курсе мы будем довольно подробно рассматривать только базовые отношения, основные приемы и принципы работы с ними.
1. Базовые типы данных
Типы данных, как и отношения, делятся на базовые и виртуальные.
(О виртуальных типах данных мы поговорим чуть позже, посвятим этой теме отдельную главу.)
Базовые типы данных – это любые типы данных, заданные в системах управления базами данных изначально, т. е. присутствующие там по умолчанию (в отличие от пользовательского типа данных, который мы проанализируем сразу после прохождения типа данных базового).
Прежде чем перейти к рассмотрению собственно базовых типов данных, перечислим, каких типов данные вообще бывают:
1) числовые данные;
2) логические данные;
3) строковые данные;
4) данные, определяющие дату и время;
5) идентификационные данные.
В системах управления базами данных по умолчанию ввели несколько наиболее распространенных типов данных, каждый из которых принадлежит какому-то из перечисленных типов данных.
Назовем их.
1. В числовом типе данных выделяют:
1) Integer. Этим ключевым словом обычно обозначают целый тип данных;
2) Real, соответствующий вещественному типу данных;
3) Decimal (n, m). Это десятичный тип данных. Причем в обозначении n – это число, фиксирующее общее количество знаков числа, а m показывает, сколько символов из них стоит после десятичной точки;
4) Money или Currency, введен специально для удобного представления данных денежного типа данных.
2. В логическом типе данных обычно выделяют только один базовый тип, это Logical.
3. Строковый тип данных насчитывает четыре базовых типа (имеются в виду, разумеется, наиболее распространенные):
1) Bit (n). Это строки бит с фиксированной длиной n;
2) Varbit (n). Это тоже строки бит, но с переменной длиной, не превышающей n бит;
3) Char (n). Это строки символов с постоянной длиной n;
4) Varchar (n). Это строки символов, с переменной длиной, не превышающей n символов.
4. Тип дата и время включает в себя следующие базовые типы данных: