Какие возможности предоставляет фильтрация в базе данных

Обновлено: 04.07.2024

В Microsoft Access предусмотрено четыре способа отбора записей с помощью фильтров: фильтр по выделенному фрагменту, обычный фильтр, поле Фильтр для (Filter For) и расширенный фильтр.

Фильтр по выделенному фрагменту, обычный фильтр и поле Фильтр для (Filter For) являются очень простыми способами отбора записей, причем самым простым является фильтр по выделенному фрагменту — он позволяет найти все записи, содержащие определенное значение в выбранном поле. Обычный фильтр используется для отбора записей по значениям нескольких полей. Поле Фильтр для (Filter For) используется, если фокус ввода находится в поле таблицы и нужно ввести конкретное искомое значение или выражение, результат которого будет применяться в качестве условия отбора. Для создания сложных фильтров следует использовать окно расширенного фильтра.

Набор записей, которые были отобраны в процессе фильтрации, называется результирующим набором.

Чтобы использовать фильтр по выделенному фрагменту, необходимо:

  1. В поле объекта в режиме Таблицы найти значение, которое должны содержать записи, включаемые в результирующий набор при применении фильтра.
  2. Выделить это значение и нажать кнопку Фильтр по выделенному (Filter by Selection) на панели инструментов Режим таблицы (Table Datasheet).

Фильтры сохраняются автоматически при сохранении таблицы или формы. Таким образом, при повторном открытии таблицы или формы можно снова применить сохраненный фильтр.

Фильтр позволяет отбирать записи, не содержащие выбранного значения. Для этого необходимо выбрать значение, нажать правую кнопку мыши и выполнить команду Исключить выделенное (Filter Excluding Selection).

На рис. 2.57 показан результирующий набор, полученный применением фильтра по выделенному к таблице "Заказы" (Orders) демонстрационной базы данных (Northwind). Чтобы получить такой результат:

Чтобы отменить фильтр, необходимо нажать на кнопку Удалить фильтр (Remove Filter) на панели инструментов Режим таблицы (Table Datasheet) или воспользоваться одноименной командой контекстного меню.

Access запоминает последний применяемый фильтр, поэтому если теперь нажать на кнопку Применение фильтра (Apply Filter) на панели инструментов, вновь будут отобраны те же записи.

Кнопки Применение фильтра (Apply Filter) и Удалить фильтр (Remove Filter) являются по сути одной кнопкой, состояние (нажата, отжата) и подпись которой меняются в зависимости от того, установлен или нет фильтр для таблицы. Еще одним признаком, по которому можно узнать, что в таблице отображаются отфильтрованные записи, является слово ФЛТР (FLTR) в строке состояния окна приложения.

Для того чтобы установить фильтр по выделенному фрагменту, можно воспользоваться также командой контекстного меню Фильтр по выделенному (Filter by Selection) или выбрать из меню Записи (Records) команду Фильтр, Фильтр по выделенному (Filter, Filter by Selection).

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

Чтобы использовать возможности поля Фильтр для (Filter For), необходимо:

  1. Открыть таблицу в режиме Таблицы.
  2. Щелкнуть правой кнопкой мыши на поле, для которого нужно указать условие отбора, а затем ввести значение условия отбора в поле Фильтр для (Filter For) в контекстном меню (рис. 2.58).

Чтобы применить фильтр и закрыть контекстное меню, нужно нажать клавишу , а чтобы применить фильтр и оставить контекстное меню открытым — клавишу . При этом можно вводить в поле Фильтр для (Filter For) новые значения и по нажатии клавиши обновлять содержимое выборки.

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

Чтобы применить обычный фильтр, необходимо:

  1. Открыть таблицу в режиме Таблицы (например, откройте таблицу "Заказы" (Orders)).
  2. Нажать кнопку Изменить фильтр (Filter by Form) на панели инструментов Режим таблицы (Table Datasheet). Появится форма фильтр (Filter by form) — специальное окно для изменения фильтра (рис. 2.59). Форма содержит линейку полей таблицы. В любое из этих полей можно ввести или выбрать из списка значение, которое и будет являться условием отбора. Если условия ввести в несколько полей, они будут объединяться с помощью логического оператора И. Для того чтобы объединить условия по ИЛИ, нужно раскрыть другую вкладку формы, щелкнув по ярлычку Или в нижней части формы.

При вводе условий отбора в поля формы можно использовать любые выражения, которые возможны в Access (см. разд. "Выражения в Access"гл. 4).

Условия отбора записей, которые вводятся в поля формы фильтр (Filter by Form), можно сохранить в базе данных в виде запроса. Для этого необходимо при открытой форме фильтр (Filter by Form) нажать кнопку Сохранить как запрос (Save As Query) на

панели инструментов. Затем в диалоговом окне Сохранение в виде запроса (Save As Query) ввести имя запроса и нажать кнопку ОК. Когда потребуется повторить установку такого фильтра, нужно опять же при открытой форме фильтр (Filter by Form) нажать кнопку Загрузить из запроса (Load from Query) на панели инструментов.

Создание расширенного фильтра, как более сложного, будет рассматриваться в гл. 4.

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

Экспорт данных из выборки позволяет сохранить их в отдельном файле. Чтобы экспортировать данные, необходимо:

  1. Выбрать в меню Файл (File) команду Экспорт (Export).
  2. В окне Экспорт объекта: Таблица в (Export Table to) выбрать папку для экспорта файла.
  3. В поле Имя файла (File Name) ввести имя файла, в который осуществляется экспорт.
  4. В поле Тип файла (Save as Type) выбрать тип файла, в который осуществляется экспорт.
  5. Нажать кнопку Сохранить все (Export All).

Многие экономические задачи направлены на обработку больших таблиц, имеющих много столбцов и строк. Таблица данных называется списком, если она обладает следующими свойствами:

  • название столбца (имя поля) занимает только одну ячейку в верхней строке таблицы;
  • данные располагаются сразу после названия столбца;
  • таблица данных не имеет объединенных ячеек.

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

  • строка списка – запись базы данных;
  • столбец списка – поле базы данных.

Ячейки верхней строки с именами полей образуют область имен полей.

Рис. 1. Структурные элементы списка (базы данных Excel)

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

Список содержит фиксированное количество полей (столбцов), определяющих структуру записи базы данных (строки).

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

4.4.2. Сортировка данных в списке

Сортировка данных является базовой операцией любой таблицы и выполняется командой Данные/Сортировка с установкой необходимых параметров. Целью сортировки является упорядочивание данных. Сортировка осуществляется на том же листе.

В среде Microsoft Excel предусмотрено три уровня сортировки, которые определяются в диалоговом окне Сортировка диапазона (Рис. 2).

В том же окне устанавливается порядок сортировки в столбцах – по возрастанию или убыванию. При сортировке по возрастанию упорядочение идет:

  • для чисел - от меньшего к большему;
  • для символьных данных – по алфавиту от А до Я;
  • для дат – в хронологическом порядке.

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


Рис. 2. Параметры сортировки

Сортировка по нескольким уровням осуществляется в том случае, если в таблице имеются столбцы, содержащие повторяющиеся значения. Тогда сортировка 1-го уровня осуществляет, по сути, группировку записей с одинаковым значением поля. Сортировка 2-го уровня осуществляет упорядочение данных в группах, полученных после сортировки 1-го уровня. Сортировка 3-го уровня упорядочивает данные в группах, полученных после сортировки 2-го уровня.

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

Кнопка Параметры выводит диалоговое окно Параметры сортировки, в котором задаются дополнительные установки сортировки: с учетом регистра или без учета; по столбцам или по строкам; порядок сортировки – обычный или специальный, выбранный из предлагаемого списка. Этот список можно сформировать самостоятельно с помощью Сервис/Параметры/вкладка Списки.

4.4.3. Фильтрация

Фильтрация данных в списке – это отбор данных по заданному критерию (условию). Осуществляется эта операция с помощью команды Данные/Фильтр. Имеется две разновидности этой команды, задаваемых параметрами: Автофильтр и Расширенный фильтр.

Фильтрация данных может осуществляться с помощью специальной формы, которая вызывается командой Данные/Форма.

4.4.4. Автофильтрация

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


Рис. 3. Список с автофильтром

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

  • все – выбираются все записи без ограничений;
  • первые 10 – данный пункт позволяет во вновь появляющемся диалоговом окне Наложение условия по списку (Рис. 4) выбрать определенное количество наибольших или наименьших элементов списка, которые необходимо отобразить;


Рис. 4. Наложение условия по списку

  • значения – будут выбраны только те записи, которые в данном столбце содержат указанное значение;
  • условие – выбираются записи по формируемому пользователем условию в диалоговом окне.

Условие для отбора записей по конкретным значениям в определенном столбце может состоять из двух самостоятельных частей, соединенных логической связкой И/ИЛИ (Рис. 5). Каждая часть условия включает один из операторов отношения:

  • равно;
  • не равно;
  • больше;
  • больше или равно;
  • меньше;
  • меньше или равно;
  • начинается с;
  • содержит значение, которое может выбираться из списка или содержать шаблонные символы “*”, “?” и т.п.


Рис. 5. Задание условия фильтрации

Примеры условий

Для поля Код предмета можно сформировать условия:

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

отобрать все записи, которые не содержат кода предмета п1

4.4.5. Расширенный фильтр

Инструмент Расширенный фильтр позволяет задать условия отбора для нескольких столбцов независимо друг от друга и осуществить фильтрацию записей. Фильтрация выполняется по всем условиям одновременно. Все записи, не прошедшие через фильтр, будут скрыты.

Расширенный фильтр позволяет задать условия отбора двух типов критериев:

  • критерий сравнения;
  • вычисляемый критерий.

Если критерий фильтрации формируется в нескольких столбцах, его называют множественным критерием.

Технология использования расширенного фильтра состоит из двух этапов:

  • 1-й этап – формирование области условий;
  • 2-й этап – фильтрация записей списка.

Технология формирования области условий

Правила формирования Критерия сравнения

  1. Имена столбцов области критериев должны полностью совпадать с именами столбцов исходного списка.
  2. Условие отбора по критерию сравнения может быть задано одним из следующих способов:

§ 3.7 . Фильтрация данных в базе данных

Информатика 11 авт. Рывкинд И.Я, Лысенко Т.И, Черникова Л.А, Шакотько В.В.

I. Фильтрация данных.

В MS Access 2007 можно применить фильтр для отображения только данных, которые соответствуют определенным критериям.

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



II, Фильтрация данных для просмотра интересующих записей:

Выполнить команду: Главная – гр.Сортировка и фильтр - Фильтр

Пример 1. (т. Страны)

Найти все страны, расположенные в Европе.

Вариант 1


Внимание.

По умолчанию результаты фильтрации не сохраняются, но (при необходимости) можно сохранить:

  1. копированием через буфер обмена;
  2. как запрос;
  3. путем создания новой таблицы в базе данных, в которой записать результат фильтрования

Вариант 2


  • Для удаления фильтра определенного поля следует выполнить команду: Главная – гр.Сортировка и фильтр – Фильтр – Удалить фильтр



  • Для удаления всехфильтров необходимо выполнить команду: Главная – гр.Сортировка и фильтр – Дополнительно - Очистить все фильтры .


III.Фильтрация данных по нескольким полям

Пример 2. (т. Страны)

Найти все страны, расположенные в Европе и площадью не более 86 тыс.кв.км.(


Результат :

Удалить все фильтр:

Выполнить команду : Главная – гр.Сортировка и фильтр – Дополнительно – Очистить все фильтры:



IV. Фильтр по выделенному

Фильтр по выделенному - это самый простой тип фильтрования, с помощью которого можно находить в каждом поле только одно конкретное значение, которое совпадает с выделенным в этом поле.

  1. Особенностью его применения является то, что сначала надо установить текстовый курсор на нужное значение в данном поле, то есть найти в таблице нужное значение поля.
  2. Фильтр по выделенным можно использовать последовательно для нескольких полей. При этом условия между собой связанны логической операцией И, то есть для выбора нужной записи все условия должны выполняться одновременно.
  3. Логическую операцию ИЛИ с помощью фильтра по выделенному использовать нельзя.

Алгоритм применения фильтра на основе выделенного фрагмента

2.Чтобы убедиться, что к странице не применены фильтры, на вкладке Главная в группе Сортировка и фильтр выберите элемент Дополнительно и выберите команду Очистить все фильтры , если это возможно.

3.Выделите запись, содержащая значение, которое нужно использовать как часть фильтра, и щелкните поле. Чтобы использовать фильтр на основе определенного выделенного фрагмента, выделите только нужные символы.

4.На вкладке Главная в группе Сортировка и фильтр щелкните элемент Выделение , выберите фильтр, который нужно применить.


или

Щелкните правой кнопкой мыши в поле, а затем выберите один из элементов меню средства выделения: равно, не равно, содержит или не содержит в нижней части контекстного меню.

5. Чтобы применить фильтр к другим полям на основе выделенного фрагмента, повторите предыдущие шаги 3 и 4.

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

V. Расширенный фильтр

Расширенный фильтр позволяет:

  1. использовать все возможности фильтров,
  2. а также выполнять вычисления. При создании выражений, при выполнении вычислений идет обращение к значениям в определенном поле таблицы, название этого поля надо указать (записав в квадратных скобках).

Условия расширенного фильтра конструируются на специальном бланке. Здесь можно задавать условия только по полям одной таблицы и при отображении результатов будут выводиться все поля таблицы. С помощью расширенного фильтра можно упорядочивать данные по одному или нескольким полям.


При фильтрации данных можно формировать условия фильтрации, применяя:

And

>0 And > 4,7

Or

"Монархия" Or "Констинтуционная монархия"

Not

Not "Азия"

Between, and

Значение должно быть в заданном диапазоне

Between “А*” and “М*”

Для объединения двух строк в одну

[Фамилия] & [Имя]

Like

Для нахождения фрагмента текста, который соответствует образцу

Like "В*"

Like "*a" or “*в”

(содержимое текстового поля заканчивается на "*a" или “*в”)




Итог:

Цель: Рассмотреть способы фильтрации данных в таблицах баз данных в Delphi.

План.

1. Понятие фильтрации данных.
2. Фильтрация по выражению.
2.1. Свойство Filter.
2.2. Свойство Filtered.
2.3. Свойство FilterOptions.
3. Фильтрация по диапазону (самостоятельная работа).
4. Событие onFilterRecord (самостоятельная работа).
5. Счетчик (SpinEdit) (самостоятельная работа).

Ход лекции.

1. Понятие фильтрации данных.

Один из способов ускорить процесс поиска - уменьшить набор данных, в котором выполняется поиск. Именно для подобных целей компоненты, представляющие наборы данных, снабжены функциями фильтрации.
Фильтрацию данных применяют не реже а, пожалуй, даже чаще, чем поиск. Разница в том, что при поиске данных пользователь видит все записи таблицы, при этом курсор либо переходит к искомой записи, либо он получает данные этой записи в виде результата работы функции. При фильтрации дело обстоит иначе. Пользователь в результате видит только те записи, которые удовлетворяют условиям фильтра, остальные записи становятся скрытыми. Конечно, таким образом искать нужные данные проще. Можно указать в условиях фильтра, что требуется вывести всех сотрудников, чья фамилия начинается на "И". Пользователь увидит только их. А можно и по-другому: вывести всех сотрудников, которые поступили на работу в период между 2000 и 2005 годом.
Фильтрация — это задание ограничений для записей, отбираемых в набор данных. По умолчанию фильтрация записей не ведется, и набор данных Table содержит все записи связанной с ним таблицы БД, а в набор данных Query включаются все записи, удовлетворяющие SQL-запросу, содержащемуся в свойстве SQL.
Для компонента Query SQL-запрос является средством отбора записей в набор данных, а фильтрация дополнительно ограничивает состав этих записей.
Фильтрация похожа на SQL-запросы, но является менее мощным средством. По сравнению с SQL-запросами фильтрация менее эффективна, так как ограничивает количество записей, видимых в наборе.
Система Delphi дает возможность осуществлять фильтрации записей:
• по выражению;
• по диапазону.

Компонент Table позволяет не только отображать, редактировать и упорядочивать данные, но и отфильтровывать записи по определенным критериям. Фильтрация может задаваться свойствами Filter, Filtered и FilterOptions компонента Table.

2.2. Свойство Filtered.
Свойство Filtered включает или выключает использование фильтра. По умолчанию это свойство имеет значение False, и фильтрация выключена. При установке свойству Filtered значения True фильтрация включается, и в набор данных отбираются записи, которые удовлетворяют фильтру, записанному в свойстве Filter. Если выражение фильтра не задано (по умолчанию), то в набор данных попадают все записи.
После установки фильтра в свойстве Filter он не будет активным до тех пор, пока свойству Filtered не будет присвоено значение true. Для отключения фильтрации достаточно сбросить значение свойства Filtered в false.
Во время разработки приложения по возможности необходимо проверять выражения, записываемые в свойство Filter, с помощью установки свойства Filtered в окне инспектора объектов, так как пока фильтр не станет активным, он не проверяется на корректность. Если выражение фильтра содержит ошибки, то при попытке выполнить его генерируется исключительная ситуация.
Активизация фильтра и выполнение фильтрации возможны также на этапе разработки приложения.

2.3. Свойство FilterOptions.
Параметры фильтрации задаются с помощью свойства FilterOptions типа TFilterOptions. Это свойство принадлежит к множественному типу и может принимать комбинации двух значений:
• foCaseInsensitive — регистр букв не учитывается, т. е. при задании фильтра Post = 'водитель' слова Водитель, ВОДИТЕЛЬ или водитель будут восприняты как одинаковые. Значение foCaseInsensitive рекомендуется отключать, чтобы различать слова, написанные в различных регистрах;
• foNoPartialCompare — выполняется проверка на полное соответствие содержимого поля и значения, заданного для поиска. Обычно применяется для строк символов. Например, при выключенном значении foNoPartialCompare для фильтра Post = 'в*' будут отобраны записи, у которых в поле Post содержатся значения Водитель, Вод., Вод-ль или Врач.
По умолчанию оба параметра фильтра выключены, и свойство Filteroptions имеет значение [ ] .
3. Фильтрация по диапазону (самостоятельная работа).

4. Событие onFilterRecord (самостоятельная работа).

5. Счетчик (SpinEdit) (самостоятельная работа).

Контрольные вопросы:

  1. Что называется фильтрацией данных?
  2. Какие существуют способы фильтрации?
  3. В чем разница выполнения фильтрации в Table и Query?
  4. Как происходит включение и выключение фильтрации по выражению?
  5. Какие операторы используются при составлении выражения для фильтра?
  6. Какое свойство используется для задания выражения для фильтрации?
  7. Какие параметры и в каком свойстве можно установить для фильтрации?

Домашнее задание:
Дополнительный материал для самостоятельного изучения по следующим вопросам: фильтрация по диапазону; событие onFilterRecord; счетчик (SpinEdit).

Читайте также: