Что происходит в процессе сортировки записей
Базы данных могут содержать сотни и тысячи записей. Часто бывает необходимо их упорядочить, т. е. расположить в определенной последовательности. Упорядочение записей называется сортировкой.
Сортировка записей производится по какому-либо полю базы данных. Значения, содержащиеся в этом поле, располагаются в порядке возрастания или убывания. В процессе сортировки целостность записей сохраняется, т. е. строки таблицы перемещаются целиком.
При сортировке по возрастанию данные различных типов выстраиваются в следующем порядке:
— числа — от наименьшего отрицательного до наибольшего положительного числа;
— текст — в алфавитном порядке (числа, знаки, латинский алфавит, русский алфавит);
— дата и время — в хронологическом порядке.
При сортировке по убыванию данные выстраиваются в порядке, обратном вышеуказанному.
Сортировка базы данных — это упорядочение записей по значениям одного из полей.
Например, после сортировки по возрастанию по текстовому полю «Фамилия» база данных «Записная книжка» примет вид, показанный в табл. 5.3.
Вложенные сортировки. В базах данных можно проводить вложенные сортировки, т. е. сортировать данные последовательно по нескольким полям. При вложенной сортировке строки, имеющие одинаковые значения в ячейках первого поля, будут упорядочены по значениям в ячейках второго поля, а строки, имеющие одинаковые значения во втором поле, будут упорядочены по значениям третьего поля.
В текстовых редакторах Microsoft Word и OpenOffice Writer сортировку записей в базе данных можно осуществить с помощью команды [Таблица-Сортировка. ]. В диалоговом окне Сортировка можно указать последовательность и порядок проведения вложенной сортировки.
В качестве примера осуществим вложенную сортировку базы данных «Компьютеры» по возрастанию по трем полям Тип компьютера, Процессор и Память (рис. 5.3).
В электронных таблицах существует режим сортировки, который позволяет после выбора любого столбца расширить диапазон сортируемых данных. В этом случае по данным выделенного столбца будут сортироваться строки (записи базы данных) целиком (рис. 5.4).
Сортировка данных в столбцах электронной таблицы.
Электронные таблицы позволяют сортировать данные в отдельных столбцах. Если в столбец электронной таблицы ввести данные одного типа (числа, текст, даты или время), можно произвести их сортировку по возрастанию или убыванию. Ниже приведена таблица 5.4, в которой сортировка данных в столбцах проведена следующим образом:
— в столбце А — сортировка чисел по возрастанию;
— в столбце В — сортировка текста по убыванию;
— в столбце С — сортировка дат по возрастанию;
— в столбце D — сортировка времени по убыванию.
Контрольные вопросы
1. В чем состоит различие между сортировкой записей базы данных и сортировкой данных в столбцах электронной таблицы?
Задания для самостоятельного выполнения
5.5 Задание с кратким ответом. В каком порядке расположатся записи в базе данных «Компьютеры» (см. табл. 5.2) после сортировки по убыванию по полю Тип компьютера? По полю Процессор? По полю Память?
5.6 Практическое задание. В текстовом редакторе отсортировать базу данных «Записная книжка» (см. табл. 5.1) по полю Фамилия.
5.7 Практическое задание. В электронных таблицах отсортировать базу данных «Записная книжка» (см. табл. 5.1) по полю Фамилия.
5.8 Практическое задание. В текстовом редакторе осуществить вложенную сортировку базы данных «Компьютеры» (см. табл. 5.2) по возрастанию по полям Тип компьютера, Процессор и Память.
Сортировка записей по текстовым, числным значениям или значениям дат
Сортировка данных может играть важную роль в том, чтобы отчет или форма были эффективными и простыми в использовании. Например, каталог товаров, в который перечисляются товары в алфавитном порядке или на основе цены за единицу, гораздо проще использовать, чем каталог, в который перечислены товары в случайном порядке.
В этой теме объясняется, как сортировать записи при просмотре и разработке таблицы, запроса, формы или отчета.
В этом разделе.
- Введение
- Сортировка записей в представлении
- Удаление порядка сортировки
- Сохранение порядка сортировки с объектом
Введение
Вы можете отсортировать записи в таблице, запросе, форме или отчете по одному или несколько полям. При минимальной разработке вы и пользователи формы или отчета можете выбрать сортировку записей.
Например, при разработке отчета каталога товаров можно выбрать упорядочение товаров в алфавитном порядке. Порядок, который выбирается при разработке объекта, становится порядком сортировки по умолчанию. Однако при просмотре запроса или отчета каждый пользователь может сортировать записи нужным образом, например по цене или поставщику.
Примечание: Представление можно отсортировать по любому полю, которое отображается в нем, за исключением полей, содержащих вложения или объекты OLE.
Вы можете настроить результаты, отсортировать записи по более чем одному полю. При сортировке по нескольким полям важно определить, какие поля называются внешними и внутренними полями сортировки. Чтобы получить нужные результаты, необходимо назначить соответствующие поля внутренними и внешними полями сортировки. Предположим, вам нужно отсортировать таблицу «Контакты» по полям «Имя» и «Фамилия». Если нужно отсортировать имена по фамилиям от А до Я (от Я до А), имя — это внутреннее поле. С другой стороны, если фамилии нужно отсортировать по каждому имени, фамилия — это внутреннее поле. Другими образом, записи сначала сортировать (самый внешний) по полю «Фамилия», а затем — на самом внутреннем (самый внутренний) — в поле «Имя».
1. Фамилия — это внешнее поле, а firstName — внутреннее
2. FirstName — это внешнее поле, а фамилия — внутреннее
При применении порядка сортировки следует помнить о том, что числа, текст и специальные знаки сортироваться в соответствии с выбранным языком и региональными настройками компьютера. Если язык и региональные параметры, заданные в диалоговом окне «Параметры Access», не соответствуют настройкам, заданным на панели управления, итоговые параметров сортировки могут не соответствовать ожиданиям.
Просмотр или изменение языка или региона по умолчанию
Чтобы просмотреть языковые параметры в Access, нажмите кнопку «Параметры>». На вкладке «Общие»в области«Создание баз данных» просмотрите или измените значение в списке «Порядок сортировки новой базы данных». Установите параметр «Общий», если вы хотите использовать один из таких языков: afrikaans, Arabic, Arabic, Basque (Basque), Bulgarian, Catalan, Dutch, Dutch, English, Faeroese, Farsi, German-Standard, Greek, Hebrew, Hindi, Indonesian, Italian, Malay, Portuguese, Russian, Serbian, Swahili, and Urdu. Обратите внимание, что этот параметр влияет только на новые базы данных. Чтобы применить этот параметр к существующей базе данных, сначала сжатие базы данных.
Чтобы сжатие базы данных:
- Нажмите кнопку «Работа с базами данных>сжатие и восстановление базы данных.
Сведения о региональных параметрах компьютера см. в региональных параметрах Windows, чтобы изменить внешний вид некоторых типов данных.
Сортировка записей в представлении
Примечание: В Access сортировка отчета немного отличается от сортировки таблицы, запроса или формы.
Сортировка отчета
- Откройте отчет в конструкторе или макете.
- Если области «Группировка, сортировка и итоги» не открыты, в группе «Группировка & Итоги» (на вкладке «Формат» в представлении «Макет» или на вкладке «Конструктор» в конструкторе) щелкните «Группировка & Сортировка».
- Выполните одно из следующих действий:
- Если в отчете нет ни группировки, ни сортировки, нажмите кнопку «Добавить группу» в области «Группировка, сортировка и итоги», а затем выберите внешнее поле сортировки. Щелкните вторую стрелку вниз и выберите порядок значений. Щелкните «Еще»,затем щелкните стрелку справа от раздела с заглавным и выберите раздел без раздела. Повторите эти действия для каждого поля сортировки, при этом внутреннее поле сортировки появится внизу.
- Если отчет уже сгруппировать или отсортировать, просмотрите существующие уровни и внимательно внося изменения. Чтобы изменить поле, используйте первую стрелку вниз. Чтобы изменить порядок, щелкните вторую стрелку вниз. Чтобы изменению уровня группировки на уровень сортировки, измените в разделе с заглавными заглавными словами раздел без раздела.
Совет: Чтобы отсортировать отчет по одному полю, откройте отчет в представлении макета, щелкните его правой кнопкой мыши и выберите команду сортировки. Например, если выбрано поле «Возраст», выберите «Сортировка от минимального к наибольшему» или «Сортировка от наибольшего к минимальному». Но если отчет сгруппировать или отсортировать по нескольким полям, необходимо использовать области «Группировка, сортировка и итоги».
Сортировка таблицы, запроса или формы
- Определите поля, по которым нужно отсортировать поля. Чтобы отсортировать по двум или более полям, определите, какие поля будут явнее всего и как внутренние и внешние поля сортировки.
- Щелкните правой кнопкой мыши в любом месте столбца или управления, соответствующего внутреннему полю, и выберите одну из команд сортировки. Команды зависят от типа данных в выбранном поле.
Примечание: При сортировке данных по полю с типом данных «Да/Нет» значение «Да», «Истина» или «Включительно» считается «Выбрано», а значения «Нет», «Ложь» и «Отключено» считаются «Очищенными». По умолчанию поля этого типа отображаются как квадраты, но их можно настроить так, чтобы они отображались как текстовые поля или поля со полем со множеством полей. Если изменить тип поля на текстовое поле или поле со полем, оно будет сортироваться как «Выбрано» или «Очищено».
Примечание: Если текстовое поле содержит строки нулевой и нулевой длины, при сортировке по возрастанию сначала вы перечислены записи с нулевыми значениями, затем записи с нулевыми строками, а затем записи с непанными значениями.
- Значения, которые начинаются с пробела, будут отображаться перед буквами и цифрами.
- За значениями, заключенными в кавычках, начинаются пробелы, но предшествуют букво-числимым значениям.
- Значения, начинающегося со знака «минус»(-),предшествуют значениям, которые начинаются со знака «плюс»(+).
- Порядок определяется кодами всех остальных символов ASCII. Например, код для символа рубля ($) составляет 36, а код для знака равно (=) — 61, поэтому значения, начина которые начинаются с $, будут отображаться перед значениями, которые начинаются со знака =. Чтобы переопредить этот порядок, можно проигнорировать первый знак всех значений в поле. Этот метод работает, если значения в поле всегда начинаются с одного специального знака, например знака «минус» или с одинаковым количеством специальных знаков, так что вы знаете, сколько знаков нужно игнорировать. Пошаговую информацию о том, как сортировать части значений, см. в статье «Сортировка записей по частичным значениям в поле». Если количество символов, которые нужно игнорировать, различается, можно задать настраиваемый порядок сортировки. Пошаговую информацию см. в статье «Сортировка записей в пользовательском порядке».
Помните, что порядок сортировки нельзя удалить только из одного поля. Чтобы удалить сортировку из всех полей сортировки, на вкладке «Главная» в группе «Фильтр & сортировки» нажмите кнопку «Очистить все сортировки» и примените нужные порядки сортировки.
Дополнительные сценарии сортировки
При использовании команд сортировки для определения порядка записей используются тип данных поля и полные значения каждого поля. Но что делать, если вам нужно отсортировать текстовые значения, например «Понедельник», «Вторник» и так далее, в пользовательском порядке, а не в алфавитном порядке? Или вы хотите отсортировать текстовое поле с IP-адресами? Если ваши потребности в сортировке не выполнены командами сортировки, см. следующие разделы:
- Сортировка записей по частичным значениям поля Хотите отсортировать записи по первым или нескольким знакам в поле? Если вам удобно писать простые выражения, см. этот раздел, в который можно извлечь частичные значения с помощью выражений.
- Сортировка записей с учетом регистра Access не будет учитывать дело с текстовыми значениями. Например, значения кузнецов и Климов будут рассматриваться точно так же, и вы не сможете контролировать то, какое из них будет отображаться первым. Если вы хотите отсортировать данные счувствительными к делу данными, см. этот раздел.
- Сортировка записей по числовым значениям, хранящимся в текстовом поле Вы видите записи, отсортсортировали по отдельным цифрам, а не по числовому значению? Например, если записи со значениями 11 и 121 отображаются перед записями со значениями 2 или 25, см. эту статью.
- Сортировка записей в пользовательском порядке Если вы хотите отсортировать определенные значения, например названия дней (понедельник, вторник и так далее) или названия сотрудников (руководитель, директор) в определенном порядке, см. эту статью.
- Сортировка IP-адресов Поле, которое содержит IP-адреса, содержит несколько чисел и периодов(.), поэтому простая сортировка текста или числового типа не будет работать для IP-адресов. В этой теме вы узнаете, как сортировать IP-адреса.
Удаление порядка сортировки
- Чтобы удалить порядок сортировки из таблицы, запроса или формы, на вкладке «Главная» в группе «Фильтр & сортировки» нажмите кнопку «Очистить все сортировки». При этом порядок сортировки будет отсортироваться для всех полей в представлении.
- Чтобы удалить порядок сортировки из отчета, откройте области «Группировка, сортировка и итоги», нажав кнопку «Сортировка группы & &» в группе «Группировка и итоги» (на вкладке «Формат» в конструкторе на вкладке «Конструктор»). Затем выберите уровень сортировки, который нужно удалить, и нажмите кнопку «Удалить». Запись, соответствующая полю сортировки, начинается со слова «Сортировать по». Не удаляйте записи, начинающиесяс группировки, так как это изменит оформление отчета.
Сохранение порядка сортировки с объектом
Порядок сортировки, примененный последним, автоматически сохраняются вместе с таблицей, запросом, формой или отчетом. Если вы хотите, чтобы объект автоматически применялся при следующем его открытие, убедитесь, что для свойства OrderByOnLoad объекта установлено свойство Yes(Да).
Так как порядок сортировки, применяемой последним, время от времени будет меняться, порядок сортировки можно определить постоянно (или по умолчанию). Вы можете задать порядок сортировки по умолчанию для запроса или отчета. Обратите внимание, что порядок сортировки по умолчанию не перезаписывается текущим или сохраненным порядком сортировки, но действует только в том случае, если текущий или последний сохраненный порядок сортировки удален из представления.
- Чтобы определить порядок сортировки по умолчанию для запроса, откройте его в режиме конструктора. Добавьте поля сортировки на конструктор и в строке «Сортировка» укажите нужный порядок сортировки.
- Чтобы определить порядок сортировки по умолчанию для отчета, используйте области «Группировка, сортировка и итоги» в режиме макета или конструктора. Пошаговую информацию см. в разделе «Сортировка отчета».
Чтобы отсортировать записи по умолчанию, на вкладке «Главная» в группе «Сортировка & фильтра» нажмите кнопку «Очистить все сортировки». При этом из представления удаляется текущий или последний сохраненный фильтр, что позволяет просматривать записи в стандартом порядке.
Сортировка записей в пользовательском порядке
Иногда требуется отсортировать данные не по алфавиту или по числу, а по пользовательскому порядку (настраиваемый или логический порядок). Например, можно отсортировать рабочие дни так, чтобы первым был понедельник, чем сортировка в алфавитном порядке, когда пятница отображается первой. Вы можете сортировать данные в представлении таблицы или запроса либо в представлении формы.
В этой статье
- Сортировка небольшого конечного количества уникальных значений полей
- Сортировка большого количества уникальных значений полей
Сортировка небольшого конечного количества уникальных значений полей
В этой процедуре вы напишем выражение, в качестве ранжируете названия сотрудников с помощью функции IIf.
Сначала создайте таблицу, которая содержит три поля: «Название», «Имя» и «Фамилия». В поле «Название» введите следующие значения для четырех новых записей:
- Inside Sales Разуваев
- Менеджер по продажам
- Sales Representative
- Вице-президент, отдел продаж
В полях «Имя» и «Фамилия» из четырех записей введите нужные имена.
- Теперь откройте таблицу в представлении таблицы.
- На вкладке Главная в группе Сортировка и фильтр нажмите кнопку Дополнительно, а затем в контекстном меню выберите команду Расширенный фильтр.
- Добавьте в сетку нужные поля, такие как «Имя», «Фамилия» и «Название».
- Щелкните правой кнопкой мыши строку поля в первом пустом столбце, выберите «Масштаб»и введите следующее выражение: IIf([Title] = «Vice President, Sales», 1,IIf([Title] = «Sales Manager», 2,IIf([Title] = «Sales Representative», 3,IIf([Title] = «Inside Sales Вуалю», 4, 5)))) Название — это имя поля, которое содержит ранжировали значения. Значения, заключенные в кавычках, являются отдельными значениями, храниммими в поле. После него будет ранж, присвоенный ему. Предыдущее выражение присваивает ранг от 1 до 4 четырем разным названиям и присваивает 5 всем остальным. При выполнении сортировки названия, не упомянутые в этом выражении, имеют одинаковый ранг (5).
- В строке «Сортировка» для столбца, содержащего выражение, щелкните «По возрастанию».
- на вкладке Главная в группе Сортировка и фильтр нажмите кнопку Переключить фильтр. Функция IIf возвращает числвое значение, соответствующее значению в поле «Название». Например, если в поле «Название» имеется значение «Диспетчерпродаж», назначенное число будет 2. Если поле «Название» не указано в качестве аргумента функции (например, «Окружная пособка»), ему назначено число 5. Затем запрос отсортет эти числа по возрастанию.
Сортировка большого количества уникальных значений полей
Если нужно ранжировать большое количество значений, лучший способ отсортировать данные — создать таблицу подпапок.
Предположим, что таблица «Сотрудники» ссылается на более чем 50 разных заголовков. Сначала потребуется создать таблицу подготовить существующую таблицу для ее подготовки. Затем вы связываете две таблицы и создаете запрос.
Создание таблицы подпапок и изменение существующей таблицы
- Создайте новую таблицу подытов, в которую будут храниться заголовки. Привязйте таблицу ктипу данных и задайте для полей тип данных, указанный в скобки, как показано в следующей таблице:
TitleID
(AutoNumber)Заголовок
(текст)1 Вице-президент, отдел продаж 2 Менеджер по продажам 3 Sales Representative 4 Inside Sales Разуваев - Установите поле TitleID в качестве первичного ключа.
- Измените таблицу «Сотрудники», чтобы она выглядела как таблица tblTitles.
- В конструкторе измените имя поля «Название» на «ИД Заголовка».
- В столбце «Тип данных» измените тип данных на число.
- На вкладке «Общие» в области «Свойства поля»измените размер поля на «Длинное integer».
- Сохраните таблицу и не обращайте внимание на предупреждение о потере данных.
- Переключение в представление таблицы.
- Заполнять столбец «Названия» значением TitleID, которое соответствует значению заголовка. Например, для записей, в которых «Название» имеет значение «Диспетчер продаж», введите 2. Для продавцов введите 3.
- Сохраните и закроем таблицу.
Связать две таблицы
- На вкладке Работа с базами данных в группе Отношения нажмите кнопку Схема данных.
- На вкладке «Конструктор» в группе «Отношения» нажмите кнопку «Добавить таблицы» (или «Показать таблицы в Access 2013 «).
- Выберите tblTitles и Employeesи нажмите кнопку «Добавить», чтобы добавить их в окно «Отношения». Закройте диалоговое окно Добавление таблицы.
- Перетащите поле TitleID из таблицы tblTitles на поле TitleID в таблице Employees. Откроется диалоговое окно «Изменение связей».
- Убедитесь, что имена полей, которые отображаются в двух столбцах, являются titleIDи что в поле «Тип связи» отображается тип «один-к-многим». При необходимости вы можете изменить имена полей.
- Установите флажок Обеспечение целостности данных.
- Нажмите кнопку Создать для создания связи. Диалоговое окно «Изменение связей» закроется и сохранит изменения.
- Закроем вкладку «Отношения».
Создание запроса
- На вкладке Создание в группе Запросы нажмите кнопку Конструктор запросов.
- В диалоговом окне «Добавление таблиц ( добавление таблицы в Access 2013 ) перейдите на вкладку «Таблицы», дважды щелкните «Сотрудники», а затем дважды щелкните tblTitles.
- Добавьте поля «ИД сотрудника», «Фамилия» и «Имя» из таблицы «Сотрудники» и поле «Название» из таблицы tblTitles в таблицу конструктора запросов.
- Переключение в представление таблицы.
Сортировка записей в табличной базе данных
Будьте внимательны! У Вас есть 10 минут на прохождение теста. Система оценивания — 5 балльная. Разбалловка теста — 3,4,5 баллов, в зависимости от сложности вопроса. Порядок заданий и вариантов ответов в тесте случайный. С допущенными ошибками и верными ответами можно будет ознакомиться после прохождения теста. Удачи!
Система оценки: 5 балльная
Список вопросов теста
Вопрос 1
Что означает выражение «упорядочить данные»?
Варианты ответов
- это означает, что нужно расположить данные в определённой последовательности.
- это означает, что нужно изменить данные в соответствии с некоторыми значениями.
- это означает, что нужно перераспределить данные.
Вопрос 2
Сортировка записей в БД — это .
Варианты ответов
- процесс распределения записей по значению в разные поля.
- процесс упорядочивания записей в определённой последовательности по значению одного из полей.
- процесс объединения записей по значению одного из полей.
Вопрос 3
Какие виды сортировок записей можно производить в базе данных?
Варианты ответов
- По алфавиту
- По дате и времени
- По величине числа
- По типу данных
- По значению поля
Вопрос 4
Что происходит с целостностью записей при сортировке?
Варианты ответов
- целостность сохраняется
- целостность нарушается
- целостность группируется
Вопрос 5
Вложенная сортировка — это .
Варианты ответов
- сортировка, при которой записи, имеющие разные значения в ячейках первого поля, будут упорядочены по этим значениям, а записи, имеющие разные значения во втором поле, будут упорядочены по значениям третьего поля и т. д.
- сортировка, при которой записи, имеющие одинаковые типы в ячейках первого поля, будут упорядочены по типам в ячейках второго поля, а записи, имеющие одинаковые типы во втором поле, будут упорядочены по типам третьего поля и т. д.
- сортировка, при которой записи, имеющие одинаковые значения в ячейках первого поля, будут упорядочены по значениям в ячейках второго поля, а записи, имеющие одинаковые значения во втором поле, будут упорядочены по значениям третьего поля и т. д.
Вопрос 6
Сортировка по алфавиту равносильна:
Варианты ответов
- сортировке по убыванию
- сортировке по строкам
- сортировке по записям
- сортировке по возрастанию
- сортировке по диагонали
Вопрос 7
Какая из приведенных последовательностей отсортирована в порядке возрастания?
Варианты ответов
- Астра, Роза, Ландыш, Гвоздика.
- Яма, Тина, Овраг, Камень, Берег.
- 10.11.96, 02.12.97, 02.11.98, 14.02.99
- 12, 144, 245, 53, 94
- $10, $25, $5, $33.
Вопрос 8
База данных содержит сведения о студентах: «Фамилия», «Год рождения», «Курс», «Оценка по информатике». Запрос для вывода списка студентов второго курса 1997 г. р., имеющих оценки по информатике «4» или «5», выглядит так:
Варианты ответов
- Оценка>=4 и Год рождения = 1997 или Курс=2
- Курс>1 и Год рождения = 1997 и Оценка=5 и Оценка=4
- Курс=1 или Оценка>=4 или Год рождения = 1997
- Оценка>=4 и Год рождения = 1997 и Курс=2
- Курс=1 и Оценка>=4 или Год рождения = 1997
Вопрос 9
В какой последовательности расположатся записи в базе данных после сортировки по убыванию в поле Оперативная память?
Варианты ответов
- 1,2,3,4
- 4,1,3,2
- 3,2,1,4
- 2,3,4,1
- 4,3,2,1
Вопрос 10
Какие записи в базе данных будут найдены после ввода запроса с условием поиска «содержит М» в поле Винчестер?