Упражнение 7. Индекс

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

1. В окне базы данных щелкните на значке таблицы Контакты.

2. Щелчком на кнопке Открыть откройте таблицу в режиме редактирования.

3. В окне таблицы щелкните на заголовке Фамилия, чтобы выделить столбец.

Рис. 16.16. Сортировка фамилий по алфавиту

4. Щелчком на кнопке Сортировка по возрастанию (Sort Ascending) упорядочите записи столбца фамилии таблицы по алфавиту (рис. 16.16).

5. Вставьте в таблицу еще несколько человек с фамилией Петров. Например, Василий Петров, Николай Петров и Игорь Петров. Добавляйте записи в указанном порядке.

6. Чтобы обновить сортировку, закройте окно таблицы Контакты и вновь откройте таблицу. Записи окажутся расположенными так, как показано на рис. 16.17.

Рис. 16.17. Несколько человек с одинаковыми фамилиями

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

7. Щелчком на кнопке Вид переключитесь в режим конструктора.

8. Чтобы открыть окно индексов таблицы Контакты, показанное на рис. 16.18, щелкните на кнопке Индексы (Indexes) панели инструментов. В окне индексов есть список со столбцами названия индекса, имени поля, по которому выполняется индексация, и режима сортировки (по возрастанию или по убыванию). Мастер таблиц при создании таблицы Контакты индексировал ее потрем полям: Название Компании, Фамилия, Код_Контакты, добавив индексы с именами соответственно: Название Компании, Фамилия и PrimaryKey. Последний из трех индексов является ключом таблицы, однозначно идентифицирующим ее записи. Все имеющиеся индексы простые, то есть назначают сортировку только по одному полю. Чтобы записи с одинаковыми фамилиями располагались по алфавиту имен, следует модифицировать индекс Фамилия, добавив в него условие сортировки по полю Имя. Для этого выполните следующие шаги.

Рис. 16.18. Индексы

9. Щелкните правой кнопкой мыши на той строке, которая расположена ниже строки индекса Фамилия.

10. Выберите в контекстном меню команду Добавить строки (Insert Rows), чтобы вставить одну пустую строку.

11. В новой строке щелкните на кнопке раскрывающегося списка ячейки Имя поля.

12. Выберите пункт Имя. В столбце Порядок сортировки (Sort Order) автоматически появится вариант По возрастанию (Ascending).

Рис. 16.19. Сортировка по двум полям

В окне настройки индексов имена полей, по которым происходит упорядочивание в данном индексе, располагаются в строке с именем индекса и ниже ее в строках с пустой ячейкой Индекс (Index Name) в порядке убывания влияния поля. То есть первой выполняется сортировка по тому полю, которое в данном индексе расположено выше. В одном индексе можно использовать до 10 полей. Таким образом, теперь индекс Фамилия упорядочивает записи по алфавиту сначала по фамилиям, а потом по именам.

13. Закройте окно индексов.

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

15. Ответьте Да на запрос о необходимости сохранения таблицы. Теперь имена оказались выстроенными по алфавиту, как показано на рис. 16.19. Поскольку перед этим уже была настроена сортировка по полю Фамилия (то есть по индексу Фамилия, главным полем которого является Фамилия), вам даже не пришлось перенастраивать сортировку. Модификация индекса автоматически привела к упорядочению имен.