Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Цель работы: Ознакомление с технологией связывания таблиц. Конструирование и использование запросов к базе данных. Конструирование и использование запросов на изменение базы данных.
Связи между таблицами
Таблицы могут быть связаны отношениями один-к-одному, один-ко-многим и многие-к-многим. Access позволяет использовать только отношения первых двух типов.
При установлении связи нужно определить какая таблица является главной, а какая - подчиненной.
Отношение один-к-одному означает, что одной записи подчиненной таблицы соответствует только одна запись в главной таблице. Такие отношения встречаются очень редко, т.к. требуют неоправданно много места в БД. Вместо них можно просто добавить поля подчиненной таблицы к полям главной.
Наиболее часто используются отношения один-ко-многим. В этом случае одной записи в главной таблице соответствует несколько записей в подчиненной таблице.
Для создания отношений необходимо указать поля в двух таблицах, которые содержат одни и те же данные. Обычно такое поле в одной из таблиц (главной) является ключевым. Имена связывающих полей могут отличаться, но типы и свойства должны совпадать. Возможна связь между полем типа Счетчик и полем типа Число с форматом Длинное целое.
Задание 1. Установить связи между данными таблиц Факультет, Специальность, Группа и Студент.
Технология.
1. Загрузить файл базы данных Университет, созданный в предыдущей лабораторной работе.
2. Щелкнуть по кнопке инструментальной панели Схема данных или выполнить команду СЕРВИС/Схема данных.
3. В окне Добавить таблицу последовательно выбирать указанные выше таблицы, щелкая затем по кнопке Добавить.
4. Добавив последнюю таблицу, щелкнуть по кнопке Закрыть.
5. В окне Схема данных установить связь между таблицей Факультет и таблицей Группа. Для этого:
- выделить щелчком поле Номер факультета в таблице Факультет и, удерживая нажатой левую клавишу мыши, переместить указатель на поле с тем же названием в таблице Группа,
- отпустить клавишу мыши, появится окно Связи, в котором необходимо включить флажок Обеспечение целостности данных и нажать кнопку Создать;
- в окне Схема данных появится связь между таблицами
типа один ко многим.
Примечание 1. Для удаления ошибочно установленной связи следует выделить связь и, нажав правую кнопку мыши, вызвать контекстное меню, в котором выбрать пункт Удалить связь. Примечание 2. Целостность данных может быть обеспечена при условии, что поля таблиц, которые обеспечивают связь, имеют одинаковый тип. Если при установлении связи обнаруживается разный тип полей, следует щелкнуть по таблице на схеме данных правой клавишей мыши, и в контекстном меню выбрать пункт Конструктор таблиц, с помощью которого изменить тип поля.
6. Аналогично установить связь между таблицами Специальность и Группа по полю Номер специальности. Установить связь между таблицами Группа и Студент по полю Номер группы.
7. Закрыть окно Схема данных.
Запросы
Запрос - это средство Access для выборки данных из базы данных в форме таблицы, выполняемой по заданному условию, а также для выполнения определенных действий над табличными данными.
Условие может определять:
- порядок сортировки выводимых данных ;
- фильтрацию данных;
- вычисляемые поля;
- вывод данных из нескольких связанных таблиц;
- и т.п.
Запросы по существу являются псевдотаблицами и их можно использовать также как и таблицы. Применение запросов позволяет избежать дублирования данных в таблицах и обеспечивает максимальную гибкость при поиске и отображении данных БД. С помощью запроса создается временная таблица - динамический набор данных. С помощью запроса можно осуществить выборку данных сразу из нескольких таблиц.
Все запросы можно разделить на 2 группы:
- запросы-выборки;
- запросы действия.
Запросы-выборки извлекают данные из таблиц в соответствии с заданными условиями
Основные виды запросов-выборок:
- запрос-выборка по одной таблице с заданными ключами сортировки (таблицы, рассортированы только по одному ключу);
- запрос с критерием поиска;
- запрос перекрестный;
- запрос с параметром;
- запрос с вычисляемым полем;
- запрос с итогами;
- запрос к связанным таблицам.
Запросы-действия предназначены для выполнения требуемых действий над данными таблиц. Они позволяют добавлять, изменять или удалять данные. В Access существует 4 вида запросов - действия:
- запрос на удаление;
- запрос на замену (обновление);'
- запрос на создание новой таблицы;
- запрос на добавление новых записей в таблицу.
При составлении запроса используется таблица описания запроса, имеющая 4 основные строки. Количество столбцов таблицы определяется количеством полей, которые в нем будут использоваться.
1-ая строка таблицы называется Поле. В ней содержатся имена полей. Поле может быть вычисляемым. Тогда в соответствующей ячейке содержится выражение для вычисления значения этого поля.
2-ая строка таблицы называется Сортировка. Она определяет способ сортировки по соответствующему полю (по возрастанию, по убыванию или без сортировки).
3-ья строка таблицы управляет Выводом на экран значения соответствующего поля
4-ая строка таблицы называется Условием отбора. Содержит критерии, по которым производится отбор записей в динамический набор данных.
При записи в таблицу условий в одну ячейку таблицы можно поместить до 1024 символов. Одно и то же поле может записываться в строку таблицы описания запроса несколько раз.
При записи в запросе условия можно объединять критерии при помощи операций И (AND) или ИЛИ (OR).
Использование вычисляемых полей в запросах
Допускается создание вычисляемых полей в запросе с помощью ввода выражения в строку с именами полей.
1. В режиме конструктора запроса введите выражение в пустую ячейку строки "Поле". После нажатия клавиши Enter или перевода курсора в другую ячейку будет выведено имя поля "Выражение №N, где N - целое число, увеличивающееся на единицу для каждого нового создаваемого вычисляемого поля в запросе. Это имя выводится перед выражением и отделяется от него двоеточием. В режиме таблицы данное имя становится заголовком столбца.
2. Пользователь имеет возможность переименовать вычисляемое поле.
Например, для создания поля "Сумма" следует ввести в ячейку в строке "Поле" выражение: Сумма: [Цена]*[Количество]
При выполнении запроса в поле "Сумма" будет занесено новое значение, найденное путем перемножения содержимого полей "Цена" и "Количество".
Вычисляемые поля позволяют:
-рассчитывать числовые значения и даты;
-комбинировать значения в текстовых полях;
-создавать подчиненные запросы;
-рассчитывать значения итоговых полей с помощью групповых функций.
Для вычисляемых полей допускается сортировка, задание условий отбора и расчет итоговых значений, как и для любых других полей. Для расчета итоговых значений следует выбрать в ячейке строки "Групповая операция" элемент "Выражение".
Ввод данных в вычисляемые поля или их изменение в режимах таблицы или формы невозможен. При изменении значений полей, используемых в выражении, значение вычисляемого поля обновляется автоматически.
При делении денежного значения на любое число возвращается числовое значение со значением свойства <Размер поля> -"С плавающей точкой (8 байт)". Для того чтобы возвращалось значение типа "Денежный", следует указать этот тип в свойстве запроса <Формат поля>.
В Microsoft Access определена специальная функция, Count, обеспечивающая подсчет числа записей в запросе. Для этого следует ввести Count(*) в ячейку в строке полей.
Окно "Область ввода", выводящееся нажатием клавиш Shift+F2, позволяет просматривать выражения целиком (без прокрутки).
Элементы выражений
Элементами выражения могут быть операторы, идентификаторы, функции, литералы и константы.
Оператор =, <, >, &, And, Or, Like Определяет операцию, выполняемую над одним или несколькими элементами.
Идентификатор Формы! [Заказы]! [Заказ] или Отчеты! [Счет].ВыводНаЭкран Задает ссылку на значение поля элемента управления или свойства.
Функция Date, Sum, DLookup Возвращает значение, найденное в результате расчета или другой операции. Access Basic предоставляет пользователю возможность создавать собственные функции.
Литерал 100, #1-янв-94#, "New York" Представляет значение, например, число, строку или дату, которое используется в Microsoft Access, именно в том виде, как оно записано. Даты заключаются в символы номера (#), а строки в прямые кавычки (").
Константа True, False, Да, Нет, Null Представляет значение, остающееся неизменным.
Задание 2. Создать простой запрос для выборки сведений из базы данных, включающий следующие поля:
- наименование факультета
- номер группы
- наименование специальности
- номер зачетной книжки
- фамилия, имя, отчество Технология
1. В окне База данных выбрать объект Запросы.
2. В появившемся списке выбрать Создание запроса в режиме конструктора.
3. В появившемся окне Добавление таблицы добавить таблицы Студент, Группа, Специальность, Факультет, затем закрыть окно.
4. При необходимости отрегулировать размеры и расположение окон с таблицами на схеме данных.
5. Перетащить соответствующие названия полей из окон таблиц в бланк запроса, расположенный под схемой данных, соблюдая заданный их порядок.
Примечание. Вместо перетаскивания названия поля можно использовать двойной щелчок левой клавишей мыши по соответствующей строке в окне таблицы на схеме данных. То же самое можно получить, если использовать кнопку, разворачивающую список полей таблиц. Эта кнопка появляется при щелчке по ячейке в первой строке бланка.
6. Просмотреть полученную выборку, выполнив команду ВИД/Режим таблицы или щелкнув по кнопке инструментальной панели «Вид».
7. Вернуться в режим конструктора запросов в случае, если выборка содержит ошибки, и откорректировать запрос.
8. Закрыть запрос. Появится диалоговое окно, в котором следует подтвердить необходимость его сохранения. Присвоить запросу имя «Выборка 1»
Задание 3. Создать простой запрос для выборки сведений из базы данных, включающий те же поля, что и предыдущий запрос, но содержащий сведения только о студентах, обучающихся на коммерческой основе. Такой запрос называется запросом по условию.
Для выполнения этого задания необходимо на бланке запроса добавить поле «Коммерческий» и ввести по нему соответствующее условие.
Задание 4.Составить запрос для подсчета количества коммерческих студентов в каждой группе.
Технология.
1. Создать в режиме конструктора новый запрос с использованием таблиц Факультет, Группа, Студент.
2. Ввести в 1-ый столбец бланка запроса поле Наименование факультета, во 2-ой столбец - поле Номер труппы, в 3-ий столбец - поле Коммерческий,
3. Установить в качестве условия выборки для 3-го столбца -значение Да.
4. Установить для 1-го и 2-го столбцов бланка сортировку по возрастанию.
5. Отключить вывод на экран данных 3-го столбца.
6. Ввести в 4-ый столбец поле Коммерческий и замените название столбца на Количество коммерческих. Для этого новое и старое названия столбца следует разделить символом «двоеточие», т.е. ячейка с названием поля должна содержать:
Количество коммерческих: Коммерческий
7. Щелкнув по кнопке инструментальной панели Групповые операции, добавить в бланк строку Групповая операция и выбрать из списка в этой строке для 4-го столбца операцию Count.
8. Просмотреть выборку с подсчетом итогов, щелкнув по кнопке инструментальной панели Запуск, либо выполнив команду ЗАПРОС/Запуск.
9. Вернуться в режим конструктора запросов, щелкнув по кнопке Вид инструментальной панели.
10. Сохранить запрос, присвоив ему имя Подсчет коммерческих по группам.
Задание 5. Составить запрос-выборку для подсчета количества коммерческих студентов по каждому факультету.
Задание 6. Составить запрос, позволяющий увидеть выборку, отражающую количество студентов по каждому факультету и каждой группе. Заголовки столбцов должны соответствовать названиям факультетов, заголовки строк - номерам групп. Такой вид выборки может быть реализован перекрестным запросом. Для применения подобного запроса желательно иметь в базе данных сведения по 5-6 группам, отнесенным к 3 факультетам.
Технология.
1. Создать с помощью конструктора новый запрос с использованием таблиц Факультет, Группа, Студент.
2. Ввести в 1-ый столбец бланка запроса поле Наименование факультета, во 2-ой столбец - поле Номер группы, в 3-ий столбец - поле Коммерческий.
3. Выполнить команду ЗАПРОС/Перекрестный запрос или щелкнуть по кнопке инструментальной панели Тип запроса и выбрать из списка Перекрестный запрос.
4. Выбрать значения в строке бланка Перекрестная таблица, развернув список в ячейках:
- для 1-го столбца заголовок строк, для 2-го столбца - заголовок столбцов, для 3-го столбца - значение.
5. Выбрать функцию Count для групповой операции в 3-м столбце.
6. Просмотреть перекрестную выборку, щелкнув по кнопке Запуск.
8. Сохранить запрос под именем Количество студентов по факультетам и группам.
Задание 7. Составить запрос, позволяющий увидеть перекрестную выборку, отражающую количество коммерческих студентов по каждому факультету и каждой группе.
Задание 8. Составить запрос для вывода списков групп, причем номер группы должен запрашиваться в процессе выполнения запроса. Такой запрос называется запросом с параметром. Параметром является номер группы. Значение параметра вводится в диалоговом окне. Для создания запроса необходимо ввести в ячейку с условием текст условия отбора в квадратных скобках.
Технология.
1. Создать с помощью конструктора новый запрос с использованием одной таблицы Студент.
2. Ввести в 1-ую строку бланка запроса все поля таблицы.
3. Ввести в ячейку строки Условие отбора для поля Номер группы текст: [Введите номер группы].
4. Запустить запрос, и в появившееся диалоговое окно ввести номер одной из групп. Просмотреть выборку. Сохранить запрос, присвоив ему имя Запрос с параметром.
Задание 9. Составить запрос для получения справки по стоимости обучения коммерческих студентов с учетом НДС. Принять, что стоимость обучения с учетом НДС коммерческого студента равна стоимости обучения по выбранной им специальности, умноженной на (1+0,2), где 0,2 - величина НДС.
Такой запрос называется запросом с вычисляемым полем
Технология.
1. Создать с помощью конструктора новый запрос с использованием таблиц Специальность, Группа, Студент.
2. Ввести в бланк запроса поля: Номер группы, Номер специальности, Фамилия, N зачетки, Коммерческий, Стоимость обучения.
3. Ввести в поле Коммерческий условие- да - и отключить вывод содержимого этого поля на экран.
4. Щелкнуть мышью в строке поле следующего свободного столбца бланка и щелкнуть по кнопке инструментальной панели Построить. Будет вызвано окно Построителя выражений.
5. Используя поле таблицы Специальность, ввести в окно построителя выражение: НДС: [Стоимость обучения] * 0,2
где НДС: - заголовок столбца с вычисляемым полем,
[Стоимость обучения] - поле таблицы «Специальность,
0,2 - величина НДС.
Для записи выражения следует использовать инструменты построителя выражений. После ввода выражения щелкнуть по кнопке Ok.
6. Щелкнуть мышью в ячейке поля следующего свободного столбца и перейти в окно Построителя выражений. Ввести в этом окне формулу:
Итого: [Стоимость обучения]+[НДС]
Для редактирования выражения в вычисляемом поле запроса можно использовать окно Область ввода, которое вызывается комбинацией клавиш Shift+F2, если ячейка с полем активизирована.
7. Включить флажки вывода на экран вычисляемых полей.
8. Запустить запрос
9. Отладив запрос, сохранить его с именем Запрос с вычисляемым полем.
Задание 10. Составить запрос на обновление базы данных. Необходимо создать запрос, при выполнении которого произойдет увеличение стоимости обучения по всем специальностям в 1,5 раза.
Технология.
1. Создать с помощью конструктора новый запрос. Выбрать в качестве исходной таблицы одну таблицу - Специальность.
2. Указать тип запроса, выполнив команду ЗАПРОС/Обновление, или, щелкнув правой клавишей по свободному месту схемы данных, выбрать из контекстного меню пункт Тип запроса/Обновление.
3. Выбрать поле Стоимость обучения и ввести в него с помощью Построителя выражений в строку Обновление выражение: [Стоимость обучения]*1,5.
4. Выполнить запрос и сохранить его, присвоив имя Запрос на обновление.
Задание 11. Составить запрос на обновление базы данных. Необходимо создать запрос, при выполнении которого произойдет уменьшение стоимости обучения по двум специальностям на 10%.