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

§ 9 Сортировка, фильтрация и организация выборки данных (запросов)

Общие сведения об операциях с данными

Одно из основных назначений СУБД (и элементов эксплуатации БД) - находить и выдавать пользователю ту информацию, которую он в данный момент желает получить.

Для этого пользователь должен сформулировать некоторый «запрос», затем представить его в формальном виде, определить в СУБД условия отбора или сортировки записей и выполнить запрос.

Например, мы можем потребовать отсортировать данные в таблице "Культуры" по полю сроков созревания или отобразить в таблице только те культуры, которые можно разместить на нейтральных почвах и близких к ним (с РН от 6,2 до 7,2), или найти в таблице запись по определенной культуре.

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

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

  • Поиск. Эта операция позволяет найти в таблице нужную запись или группу записей.

  • Фильтрация. Позволяет найти и отобразить в таблице только те записи, которые удовлетворяют определенным условиям.

Здесь мы можем воспользоваться двумя фильтрами:

  • Фильтром по "выделенному". Его называют также фильтром по "образцу".

  • Расширенным фильтром (фильтром по условию). Это - более гибкий (нежели первый) инструмент фильтрации записей, но и более сложный в построении запроса.

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

Отметим одну особенность результатов фильтрации и выполнения запросов.

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

Сортировка таблицы и простейшие приемы фильтрации

Сортировка записей.

  • Откройте таблицу "Культуры".

При открытии таблицы система выводит записи в последовательности, определенной значениями первичного ключа, который, в нашем случае состоит из полей "Код гр." и "Код культ.".

Если этот порядок нас не устраивает, то необходимо отсортировать таблицу по другим полям.

  • Отсортируем нашу таблицу по начальному сроку созревания культур в возрастающем порядке значений этого поля:

  • Установите курсор на любой записи в столбце "Созр. -от".

  • Найдите на СПИ кнопку "Сортировка по возрастанию" и нажмите ее.

  • Посмотрите результаты сортировки.

Отчет. Скопируйте таблицу в соответствующий раздел отчета по РГР и перед таблицей укажите условия сортировки.

  • Для возврата к исходному состоянию выполните команду «Записи / Удалить фильтр».

  • Повторите операцию с другими полями.

Сортировка таблиц по нескольким полям (если они не смежные) может быть выполнена только "через" расширенный фильтр.

Поиск записей.

Допустим, нам надо быстро найти и посмотреть информацию о "Смородине" (т.е. выполнить поиск записей по одному полю).

  • Выделите поле "Название" или поместите в него курсор вставки.

  • Введите команду "Правка / Найти". Откроется ДО "Поиск и замена" (в поле).

  • Установите в ДО (на вкладке "Поиск") следующие параметры:

  1. Введите в окошко "образец" первые буквы «смор» (без кавычек). Нажмите кн. "Больше>>". Откроются дополнительные опции.

  2. В окошке "Просмотр" установите опцию "Все", т.е. выполнить поиск по всей таблице.

  3. В окошке "Совпадение" установите значение "С начала поля".

  4. Отключите индикаторы "С учетом регистра" и "С учетом формата полей" (иначе прописные и строчные буквы будут различаться).

  5. Укажите «Поиск в» (поле) «Название».

  • Нажмите кн. "Найти далее". Если найденная запись загораживается окном, то перетащите его в другое место.

  • Еще раз нажмите кн. "Найти далее". Система выделит в таблице БД другую запись со словом "Смородина".

  • Закройте ДО "Поиск в поле...".

  • Самостоятельно выполните поиск по другим полям (например, найдите записи с уровнем кислотности почв = 5,6).

Замечание.

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

  • Выполните такой поиск.

Фильтрация по выделенному (по выбору)

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

Команда не может работать с диапазонами значений полей и с набором разных полей.

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

  • Выделите в первом столбце "Код гр." поле со значением 1 (щелкните внутри него ЛКМ).

  • Введите команду «Записи / Фильтр / Фильтр по выделенному» Система отфильтрует записи и выведет на экран таблицу с записями первой группы. Далее в столбце "Название" аккуратно выделите слово "Яблоня" Повторите команду фильтрации для этого критерия. Система "сузит" диапазон записей до трех, оставив только записи по яблоням. Таким образом, данную команду можно повторять многократно к разным полям. Причем для текстовых полей можно задавать только часть значения.

  • Вернитесь к исходной таблице БД (удалив фильтр).

Использование расширенного фильтра (фильтрация по условию).

Фильтр данного вида используется для быстрого построения условий отбора при использовании нескольких критериев и полей (при использовании логических выражений).

Замечание.

Определение логических (булевских) выражений.

Допустим мы хотим отобрать и распечатать записи по культурам для которых почва должна иметь слабокислую, нейтральную или близкую к ней реакцию с рН: от Р1 = 5,6 до Р2 = 7.2 (Р1 и Р2 – условные обозначения, которые мы используем в постановке данной задачи). Из методических соображений, потребуем, чтобы нормативный диапазон, т. е. соответствующие значения полей "Почвы1" и "Почвы2", полностью включает в себя заданный. Т. о. критерий отбора будет иметь следующий вид: если (Почвы1 >= P1) И (Почвы2<= P2) , то данная запись удовлетворяет нашему условию.

Данная задача может быть решена разными способами. Например, мы можем сразу выполнить команду «Записи  Фильтр  Расширенный фильтр» и сформировать условия отбора записей (запрос) непосредственно в специальном бланке соответствующего ДО. Но (из методических соображений) мы упростим построение расширенного фильтра, используя более простой способ.

  • Найдите и нажмите на СПИ кнопку "Изменить фильтр" или введите команду «Записи / Фильтр / Изменить фильтр». Система выводит на экран ДО "Культуры: фильтр", которое повторяет структуру таблицы. Если в столбцах остались условия предыдущего фильтра – нажмите кн. "Очистить бланк" При активизации столбца в нем появляется кнопка списка. В нижней части окна находятся ярлыки: "Найти" и один или несколько "Или".

  • Установите курсор в поле "Почвы от" и введите с клавиатуры первое условие (без кавычек): " >=5,6". Нажмите ТАВ и в поле "Почвы до" введите второе условие: "<=7,2".

  • Выполните команду "Применить фильтр" (любым способом). Оцените результат фильтрации. Если записи не окажутся упорядоченными по коду группы, то выполните соответствующую сортировку.

  • Скройте лишние столбцы (см. таблицу 7). Для этого введите команду "Формат / Отобразить столбцы" и в ДО «Отображение столбцов» (в окошке со списком) – отключите соответствующие индикаторы.

Отчет. Перейдите в окно отчета по РГР. На новом листе (с книжной ориентацией) введите подзаголовок: "Фильтрация таб. "Культуры" с использованием расширенного фильтра". Опишите условия отбора записей и очень кратко – процесс построения фильтра. Вернитесь в окно СУБД. Выделите командой "Правка  Выделить все записи" полученную таблицу. Введите команду "Правка  Копировать". Перейдите в окно с отчетом по РГР. Установите курсор в нужное место и выполните команду вставки (здесь мы рассмотрели еще один способ "переброски" таблиц из среды СУБД в документ Word-а). Введите заголовок таблицы и подкорректируйте ее вид. Вернитесь в СУБД.

Таблица 7.

Результат использования расширенного фильтра.

Код гр.

Код культ.

Название

Созр.- от

Созр. - до

Почвы_от

Почвы_до

1

ВИШН-ОСЕН

Вишня осенняя

07.20

08.10

5,80

6,30

1

ВИШН-ОБЩ

Вишня

07.10

07.20

6,20

7,00

2

СМОР-ЧЕРН

Смородина черная

07.20

07.25

5,60

6,00

2

СМОР-КРАС

Смородина красная

07.15

07.25

5,60

6,00

4

КАП.-Б.Р.

Капуста белокочанная ранняя

07.20

08.10

6,50

7,20

4

МОРК-ОБЩ.

Морковь

07.10

09.20

6,00

7,00

5

ТОМ.-ПОЗД

Томаты позднеспелые

08.25

09.20

6,20

6,90

5

ТОМ.-РАН.

Томаты ранние

08.15

08.25

6,30

6,80

5

КАРТ-ОБЩ.

Картофель

08.10

09.15

6,00

6,50

  • Выполните команду предварительного просмотра и распечатайте содержимое таблицы. Распечатку подпишите.

  • Закройте окно предварительного просмотра и вернитесь в режим "полного" отображения: «Записи / Удалить фильтр» и включите отображение всех столбцов.

  • "Настоящий" расширенный фильтр можно построить иным способом.

  1. Введите команду «Записи  Фильтр  Расширенный фильтр». Откроется специальное ДО (см. рисунок 4-7) с бланком запроса (на рисунке отображается состояние окна после некоторых изменений).

  2. Изучите состояние окна. В верхней части расположено окошко с перечнем полей таблицы "Культуры". В нижней – окно бланка для построения запроса. В бланке две постоянные строки: "Поле", "Сортировка", "Условия отбора" и множество строк типа "Или". В ячейках "Поле" должны быть указаны имена полей, участвующих в логических выражениях и для сортировки таблицы – результата.

  3. Уберите из банка лишние поля («Выделить / Правка / Удалить столбцы») кроме "Почвы1" и "Почвы2". Выделите и перетащите их влево. Затем последовательно перетащите мышью поля "Код_Гр" и "Код_культ" из окошка со списком полей в с соответствующие ячейки бланка (по аналогии с визуальной установкой связи между таблицами). Установите для последних полей сортировку "по возрастанию". Выполните фильтрацию и оцените результат (он должен совпадать с предыдущим, кроме порядка следования записей).

  4. Удалите фильтр (физически он остается до создания следующего фильтра).

  5. Закройте таблицы.

Рисунок 4-7. Вид ДО для построения расширенного фильтра.

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