- Сортировка по возрастанию | |
- Сортировка по убыванию |
Для сортировки записей можно также использовать команду меню Записи/Сортировка.
Для сортировки записей по нескольким полям необходимо выделить соответствующие столбцы и выполнить команду сортировки. Сортируемые поля должны быть смежными, при этом старшим полем сортировки является поле, расположенное слева. Разместить поля таблицы в нужном порядке можно путем их выделения и перетаскивания при помощи мыши.
Для просмотра и корректировки записей БД, удовлетворяющих указанным пользователем условиям отбора, предусмотрена фильтрация таблицы. Фильтр – это набор условий, применяемый для отбора подмножества записей из таблицы, формы или запроса.
Простейшим способом задания условия отбора записей является выделение в таблице или форме некоторого значения поля или его части (фильтр по выделенному). Для этого необходимо открыть таблицу в режиме таблицы и в поле, по которому надо сделать фильтр, выделить значение поля или его часть и выбрать команду Записи/Фильтр/Фильтр по выделенному или после выделения нажать правую кнопку мыши и в контекстном меню выбрать команду Фильтр по выделенному (Рис. 14).Для отбора записей, поля которых не содержат выделенного значения, необходимо после выделения значения выбрать команду Записи/Фильтр/Исключить выделенное.
В нашем примере в таблице Преподаватели в поле Код дисциплины выделим слово Физика, далее применим (по описанному выше правил) Фильтр по выделенному. В результате в окне таблицы останутся только те записи, кодом дисциплины в которых является Физика (см.Рис. 15)
Если необходимо работать со всеми записями таблицы, то действие фильтра можно отменить, воспользовавшись командой Записи/Удалить фильтр. При этом фильтр снимается с таблицы, но сохраняется, и в любой момент его можно применить повторно, используя команду Записи/Применить фильтр. Последний созданный командой Фильтр по выделенному или Исключить выделенное фильтр сохраняется автоматически при сохранении таблицы. При последующих открытиях таблицы этот фильтр может быть применен снова.
Кроме фильтра по выделенному можно использовать и другие: обычный и расширенный.
Обычный фильтр вызывается командой Записи/Фильтр/Изменить фильтр, расширенный фильтр – командой Записи/Фильтр/Расширенный фильтр.
После выполнения команды Записи/Фильтр/Изменить фильтр в окне обычного фильтра на экран выводится пустая таблица или форма для активного объекта БД. На вкладке Найти в поля фильтра вводятся значения, по которым будут отбираться записи. На Рис. 16 фильтрация осуществляется по значению Физика в поле Код дисциплины, а также по значению Доцент в поле Должность. Значения могут вводиться с клавиатуры или выбираться из списка, как это показано для поля Должность. Для того, чтобы указать альтернативный вариант отбора записей, включаемых результирующий набор, выбирается вкладка Или. При этом открывается новое поле фильтра для задания альтернативного варианта. Набор условий, введенных в разные поля, связывается логической операцией ИЛИ. Фильтр будет отбирать записи, содержащие в полях все значения, указанные на вкладке Найти, и записи, содержащие в полях все значения, указанные на вкладке ИЛИ. Для выполнения фильтрации нажмите кнопку Применение фильтра.
Расширенный фильтр вызывается командой Записи / Фильтр / Расширенный фильтр. При этом в окне расширенного фильтра (Рис. 17) выводится список полей активной таблицы. В нижней части окна выводится бланк запроса. В строку бланка запроса Поле из списка перетаскиваются мышью роля, по которым необходимо задать условия отбора записей. Кроме того, бланк запроса позволяет выбрать тип сортировки для одного или нескольких выбранных полей.
Обычный и расширенный фильтры, так же как и фильтр по выделенному, сохраняется автоматически при сохранении таблицы, запроса или формы. При повторных открытиях объекта этот сохраненный фильтр является текущим и может использоваться по команде Записи/Применение фильтра. Если создается новый фильтр, он заменяет ранее сохраненный. Для уничтожения фильтра на панели инструментов Фильтр нажмите кнопку Очистить бланк и затем кнопку Применение фильтра. Только в этом случае фильтр будет уничтожен.
Для сохранения подготовленного фильтра нужно выполнить Записи/Фильтр/Изменить фильтр и нажать кнопку Сохранить как запрос на панели инструментов. В открывшемся окне Сохранение в виде запроса необходимо ввести имя сохраняемого запроса. В дальнейшем, вместо того, чтобы создавать фильтр заново, можно использовать существующий фильтр. Для этого в режиме Изменить фильтр воспользоваться командой Загрузить из запроса.
Одно из важнейших достоинств реляционных баз данных, как говорилось ранее, состоит в том, что можно хранить логически сгруппированные данные в разных таблицах и задавать связи между ними, объединяя их в единую базу. Для задания связи таблицы должны иметь поля с одинаковыми именами или хотя бы с одинаковыми форматами данных. Связь между таблицами устанавливает отношения между совпадающими значениями в этих полях. Такая организация данных позволяет уменьшить избыточность хранимых данных, упрощает их ввод и организацию запросов и отчетов.
В Access можно задать три вида связи между таблицами: Один-ко-многим, Многие-ко-многим, Один-к-одному. Связь Один-ко-многим – наиболее часто используемый тип связи между таблицами. В такой связи каждой записи таблицы А может соответствовать несколько записей таблицы В (поля с этими записями называют внешними ключами), а запись таблицы В не может иметь более одной соответствующей ей записи в таблице А. При связи Многие-ко-многим одной записи таблицы А может соответствовать несколько записей в таблице В, а одной записи таблицы В – несколько записей таблицы А. Такая схема реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит по крайней мере из двух полей, одно из которых является общим с таблицей А, а другое – общим с таблицей В. При связи Один-к-одному запись в таблице А может иметь не более одной связанной записи в таблице В и наоборот. Это тип связи используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением Один-к-одному применяют для разделения очень широких таблиц, для отделения части таблицы в целях ее защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.
Рассмотрим создание модели на примере следующих таблиц: Преподаватели, Студенты, Дисциплины и Оценки. Структура первой таблицы описана в Таблица 1., структура таблицы Дисциплины представлена на Рис. 9, структура двух оставшихся таблиц представлена в Таблица 2 и Таблица 3.
Таблица 2
Имя поля | Тип данных | Размер поля |
Код студента | Счетчик | |
Фамилия | Текстовый | 15 |
Имя | Текстовый | 15 |
Отчество | Текстовый | 15 |
Номер группы | Числовой | Целое |
Телефон | Текстовый | 9 |
Стипендия | Логический | Да/Нет |
Имя поля | Тип данных | Размер поля |
Код студента | Числовой | Длинное целое |
Код дисциплины | Числовой | Длинное целое |
Оценки | Числовой | Байт |
Рассмотрим связь между объектами Студенты и Дисциплины. Студент изучает несколько дисциплин, что соответствует многозначной связи. Понятно, что каждая дисциплина изучается множеством студентов. Это тоже многозначная связь. Таким образом, связь между Студенты и Дисциплины – Многие-ко-многим (M : N). Множественные связи усложняют управление базой данных (в Access при такой связи нельзя использовать механизм каскадного обновления), поэтому использовать такие связи нежелательно и нужно строить реляционную модель, не содержащую связей типа Многие-ко-многим. Для свзи будем использовать объект Оценки. Каждый студент имеет оценки по нескольким дисциплинам, поэтому связь между Студенты и Оценки будет Один-ко-многим (1 : M). Каждую дисциплину сдает множество студентов, поэтому связь между Дисциплины и Оценки также будет Один-ко-многим (1 : M). В результате получаем информационно-логическую модель базы данных, приведенную на Рис. 18
Студенты Дисциплины Преподаватели