Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
MU_k_LR_po_BD.doc
Скачиваний:
3
Добавлен:
19.09.2019
Размер:
1.55 Mб
Скачать

Задание

1. Создайте таблицы БД «Учебный процесс», соответствующие их описаниям в текстовой форме, приведенным в табл. 1.

2. Создайте связи таблиц, задайте условия обеспечения целостности, каскадного удаления и каскадного обновления данных.

3. Создайте механизм подстановки для заполнения поля КодДисциплины в таблице Занятия, поля КодДисципдины в таблице Контроль, поля КодСтудента в таблице Успеваемость.

4. Создайте механизм подстановки для заполнения поля Контроль таблицы Контроль, в соответствии с табл. 4.

Таблица 4

Таблица Контроль

Имя

поля

Элемент управ-ления

Тип источ-ника

Источ-ник строк

Присое-диненный столбец

Число столб-цов

Ширина столб-цов

Ширина списка

Ограни-читься списком

Контроль

Поле со списком

Список значений

экз.;зач.

1

1

2

Авто

Да

5. Заполните базу данными самостоятельно или в соответствии с прил. 1.

Лабораторная работа № 4 Конструирование запросов на выборку с условиями отбора

Цель работы: изучение средств построения запросов на выборку данных из таблиц БД в СУБД MS Access.

Запрос на выборку формирует некоторую виртуальную таблицу, существующую до закрытия запроса. Записи этой таблицы формируются на основе записей в исходных таблицах и связей между этими таблицами в соответствии с задаваемыми условиями отбора. Результаты выполнения запроса в MS Access могут выводиться в режиме таблицы, подобном окну просмотра таблицы базы данных.

Для создания запроса в режиме конструктора выбирается кнопка Создать в окне БД и команда Конструктор в появившемся окне Новый запрос.

Далее в окне Добавление таблицы нужно выбрать таблицы, используемые в запросе.

Окно конструктора запроса разделено на две панели. Верхняя представляет собой схему данных запроса, которая включает выбранные для запроса таблицы. Таблицы представлены списками полей. Нижняя панель является бланком запроса QBE, который нужно заполнить.

Пример однотабличного запроса с использованием логических операций в условиях отбора приведен на рис. 4.

Запрос ВыборДисципин позволяет выбрать дисциплины с общим числом изучения не более 100 и числом семестров изучения не более двух.

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

В строку Поле включаются имена полей, используемых в запросе. (Приемы: выбрать из списка в строке Поле бланка запроса; перетащить из схемы данных, дважды щелкнуть в схеме данных)

В строке Сортировка выбирается порядок сортировки записей результата (по возрастанию, по убыванию, отсутствует).

Рис. 4. Однотабличный запрос в режиме конструктора и в режиме таблицы

В строке Вывод на экран отмечаются поля, которые должны быть включены в результирующую таблицу.

В строке Условия отбора задаются условия отбора записей.

В строке или задаются альтернативные условия отбора записей.

Для отображения имен таблиц в строке бланка запроса выполняется команда Вид/Имена таблиц.

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

Условия отбора записей могут задаваться в бланке запроса для одного или нескольких полей. Условием отбора является выражение, которое состоит из операторов сравнения и операндов. В качестве операндов могут использоваться:

    • литералы,

    • константы,

    • идентификаторы (ссылки).

Литералами являются конкретные значения, такие как:

  • числа, например 456;

  • текстовые строки, например «Информатика»;

  • даты, например #1.01.2003#.

Константами являются не изменяющиеся значения, которые определены в Access, например: «True», «False», «Да», «Нет», «Null».

Идентификатор представляет собой ссылку на поле, элемент управления или свойство. Ссылка на поле имеет вид: [Имя таблицы]![Имя поля].

Операторы сравнения и логические операторы определяют операцию над одним или несколькими операндами:

=, <, >, <=, >=, <>, Between, In, Like, And, Or, Not.

Если выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =.

Допускается использование операторов шаблона * и ? .

Оператор Between задает интервал для числового значения, например: Between 10 And 100.

Оператор In позволяет выполнить проверку на равенство любому значению из списка, например, In («Математика», «Информатика», «История»).

Оператор Like позволяет использовать образцы, использующие символы шаблона, при поиске в текстовых полях, например: Like «Иванов*».

Условия отбора, заданные в одной сроке, связываются по умолчанию с помощью логической операции «И», заданные в разных строках – с помощью логической операции «Или». Эти операции могут бать также заданы явно в выражении условия отбора с помощью операторов And и Or соответственно. Условия отбора можно сформировать с помощью Построителя выражений, если вызвать команду Построить в контекстном меню.

Для запроса ВыборДисциплин в режиме SQL будет отражена следующая строка:

SELECT Дисциплина.Дисциплина, Дисциплина.ВсегоЧасов,

Дисциплина.ЧислоСеместров FROM Дисциплина

WHERE

((Дисциплина.ВсегоЧасов)<=100) AND ((Дисциплина.ЧислоСеместров)<=2);

Многотабличный запрос Преподаватель-Занятия, позволяющий получить информацию о занятиях (дисциплина, дата, пара), проведенных преподавателями Барсуковым и Журавлевой, в бланке запросов, представлен на рис. 5.

Рис. 5. Многотабличный запрос в режиме конструктора и в режиме таблицы

На языке SQL:

SELECT Преподаватель.Фамилия, Дисциплина.Дисциплина, Занятия.Дата, Занятия.Пара

FROM Преподаватель INNER JOIN (Дисциплина INNER JOIN Занятия ON Дисциплина.КодДисциплины = Занятия.КодДисциплины) ON Преподаватель.КодПреподавателя = Дисциплина.КодПреподавателя

WHERE ((Преподаватель.Фамилия)="Барсуков") OR ((Преподаватель.Фамилия) Like "Журавлев*"));

Задание

1. Создайте запрос, показывающий студентов с фамилией, начинающейся на буквы А, Б, В.

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

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

Лабораторная работа № 5

Конструирование запросов на выборку с параметрами и

вычисляемыми полями

Цель работы: изучение средств построения запросов на выборку данных с параметрами и вычисляемыми полями из таблиц БД в СУБД MS Access.

Запрос с параметрами – это запрос, при выполнении которого условия отбора записей вводятся пользователем в диалоговом окне.

Для создания диалога с пользователем необходимо ввести в бланке запроса в строке Условия отбора имя параметра запроса в квадратных скобках. Это выражение будет появляться при выполнении запроса в диалоговом окне.

Пример запроса Студенты-оценки с параметром в бланке запросов представлен на рис. 6.

На языке SQL:

SELECT Студенты.Фамилия, Успеваемость.Результат

FROM Студенты INNER JOIN Успеваемость ON Студенты.КодСту-дента = Успеваемость.КодСтудента

WHERE ((Студенты.Фамилия)=[Введите фамилию студента:]);

Рис. 6. Запрос с параметром

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

Для создания вычисляемого поля необходимо в бланке запросов ввести выражение в пустой ячейки строки Поле. После ввода выражения система формирует имя вычисляемого поля, по умолчанию Выражение 1. Это имя вставляется перед выражением. Изменить имя вычисляемого поля можно, исправив его прямо в бланке запроса или в инструкции SQL, используя конструкцию Выражение AS Имя поля.

Рис. 7. Запрос с вычисляемыми полями в режиме конструктора

Пример. Запрос СреднееКоличествоЧасовДисциплин возвращает в вычисляемом поле с именем СреднееЧасов количество часов в среднем за один семестр для каждой дисциплины (рис. 7, 8).

На языке SQL:

SELECT Дисциплина.Дисциплина, Дисциплина.Группа, Дисциплина.ВидЗанятий, [ВсегоЧасов]/[ЧислоСеместров] AS СреднееЧасов

FROM Дисциплина;

Рис. 8. Запрос СреднееКоличествоЧасовДисциплин в режиме таблицы

Задание

1. Создайте запрос, который в диалоге с пользователем для определенного студента выводит дату, пару и дисциплину, по которой произошел пропуск занятия.

2. Создайте запрос, вычисляющий количество бюджетных мест в группе, если известно, что они оставляют 50% от количества студентов группы.

Лабораторная работа № 6

Конструирование запросов на выборку с групповыми

операциями и запросов на объединение

Цель работы: изучение средств построения запросов на выборку данных из таблиц БД с групповыми операциями в СУБД MS Access.

Групповые операции позволяют выделить группы записей с одинаковыми значениями в полях и использовать для этих групп одну из статистических функций:

Sum – сумма значений некоторого поля для группы;

Avg – среднее всех значений поля в группе;

Max, Min – максимальное и минимальное значения поля в группе;

Count – число значений поля в группе без учета пустых значений;

Stdev – среднеквадратичное отклонение;

Var – дисперсия;

First, Last – значение поля из первой или последней записи в группе.

Результат запроса с использованием групповых операций содержит по одной записи для каждой группы.

Создадим запрос ЧислоСтудентовГруппы, вычисляющий фактическое число студентов в группе.

Для создания запроса с использованием групповых операций, формируется запрос на выборку. В бланк запроса включаются поля, по которым производится группировка, и поля, по которым нужно произвести вычисления (рис. 9).

Рис. 9. Запрос с групповыми операциями в бланке запросов

На языке SQL:

SELECT Студенты.Группа, Count(Студенты.КодСтудента) AS [Число студентов] FROM Студенты GROUP BY Студенты.Группа;

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]