Что такое сортировка записей базы данных
Что такое сортировка записей базы данных
Базы данных могут содержать сотни и тысячи записей. Часто бывает необходимо их упорядочить, т. е. расположить в определенной последовательности. Упорядочение записей называется сортировкой.
Сортировка записей производится по какому-либо полю базы данных. Значения, содержащиеся в этом поле, располагаются в порядке возрастания или убывания. В процессе сортировки целостность записей сохраняется, т. е. строки таблицы перемещаются целиком.
При сортировке по убыванию данные выстраиваются в порядке, обратном вышеуказанному.
Например, после сортировки по возрастанию по текстовому полю «Фамилия» база данных «Записная книжка» примет вид, показанный в табл. 5.3.
Таблица 5.3. Результат сортировки базы данных «Записная книжка» | ||||||||||||||||
|
Вложенные сортировки. В базах данных можно проводить вложенные сортировки, т. е. сортировать данные последовательно по нескольким полям. При вложенной сортировке строки, имеющие одинаковые значения в ячейках первого поля, будут упорядочены по значениям в ячейках второго поля, а строки, имеющие одинаковые значения во втором поле, будут упорядочены по значениям третьего поля.
В текстовых редакторах Microsoft Word и OpenOffice Writer сортировку записей в базе данных можно осуществить с помощью команды [Таблица-Сортировка. ]. В диалоговом окне Сортировка можно указать последовательность и порядок проведения вложенной сортировки.
В качестве примера осуществим вложенную сортировку базы данных «Компьютеры» по возрастанию по трем полям Тип компьютера, Процессор и Память (рис. 5.3).
| |||||||||||||||||||||||||||||
Рис. 5.3. Вложенная сортировка базы данных «Компьютеры» в текстовом редакторе |
В электронных таблицах существует режим сортировки, который позволяет после выбора любого столбца расширить диапазон сортируемых данных. В этом случае по данным выделенного столбца будут сортироваться строки (записи базы данных) целиком (рис. 5.4).
| ||||||||||||||||||||||||||||||||||||||||
Рис. 5.4. Вложенная сортировка базы данных «Компьютеры» в электронных таблицах |
Сортировка данных в столбцах электронной таблицы.
Таблица 5.4. Сортировка чисел, текста, дат и времени в столбцах | |||||||||||||||||||||||||||||
|
1. В чем состоит различие между сортировкой записей базы данных и сортировкой данных в столбцах электронной таблицы?
5.5 Задание с кратким ответом. В каком порядке расположатся записи в базе данных «Компьютеры» (см. табл. 5.2) после сортировки по убыванию по полю Тип компьютера? По полю Процессор? По полю Память?
5.6 Практическое задание. В текстовом редакторе отсортировать базу данных «Записная книжка» (см. табл. 5.1) по полю Фамилия.
5.7 Практическое задание. В электронных таблицах отсортировать базу данных «Записная книжка» (см. табл. 5.1) по полю Фамилия.
5.8 Практическое задание. В текстовом редакторе осуществить вложенную сортировку базы данных «Компьютеры» (см. табл. 5.2) по возрастанию по полям Тип компьютера, Процессор и Память.
Сортировка в MySQL
В этой статье приведены примеры использования оператора ORDER BY для сортировки записей в MySQL.
Синтаксис оператора ORDER BY:
Направление сортировки
ASC – (по умолчанию, необязательный). Сортирует набор в порядке возрастания или по алфавиту.
DESC – сортирует в порядке убывания.
Сортировка по нескольким столбцам
Также возможно сделать сортировку по несколькольким столбцам, указывая их через запятую в порядке приоритета.
Сортировка по определенной последовательности
Также можно скомбинировать сортировку из нескольких полей и показать первыми приоритетные записи, а далее по алфавиту.
Или убрать в конец ненужные записи:
Сортировка по цене, но исключая нулевые значения
В списках товаров отсортировать значения цен по возрастанию, но при этом нулевые значения были в конце поможет следующий пример.
Сортировка по данным из другой таблицы
К примеру имеется таблица брендов и товаров, нужно отсортировать бренды по количеству товаров.
Сортировка в случайном порядке
Сортировка дат
Проблема возникает если даты хранятся в текстовом виде (например 23.09.2020). Если отсортировать таблицу по такому полю, то результате будут перепутаны месяцы.
Проблема с тапами данных
Если в сортируемом поле содержатся одновременно текст и цифры, а нужно отсортировать только по цифрам, то данные нужно привести к числовому типу:
ТЕМА 4.4. СПИСКИ. ОБРАБОТКА, СОРТИРОВКА И ФИЛЬТРАЦИЯ ТАБЛИЧНЫХ ДАННЫХ. СТРУКТУРИРОВАНИЕ ТАБЛИЦ
Познакомиться с технологиями:
Оглавление
4.4.1. Понятие списка (базы данных)
Многие экономические задачи направлены на обработку больших таблиц, имеющих много столбцов и строк. Таблица данных называется списком, если она обладает следующими свойствами:
При таких условиях список можно считать однотабличной базой данных, поэтому при работе со списком применяют соответствующую терминологию:
Ячейки верхней строки с именами полей образуют область имен полей.
Рис. 1. Структурные элементы списка (базы данных Excel)
Данные всегда располагаются, начиная со следующей строки после области имен полей. Весь блок ячеек с данными называют областью данных.
Список содержит фиксированное количество полей (столбцов), определяющих структуру записи базы данных (строки).
Над записями списка можно выполнять различные операции обработки, команды вызова которых сгруппированы в меню Данные.
4.4.2. Сортировка данных в списке
Сортировка данных является базовой операцией любой таблицы и выполняется командой Данные/Сортировка с установкой необходимых параметров. Целью сортировки является упорядочивание данных. Сортировка осуществляется на том же листе.
В среде Microsoft Excel предусмотрено три уровня сортировки, которые определяются в диалоговом окне Сортировка диапазона (Рис. 2).
В том же окне устанавливается порядок сортировки в столбцах – по возрастанию или убыванию. При сортировке по возрастанию упорядочение идет:
Для столбцов, содержащих разные по формату данные, имеет место приоритет: числа, текст, логические значения, значения ошибок, пустые ячейки. Сортировка по убыванию использует обратный порядок (исключение – пустые ячейки, которые располагаются в конце списка).
Рис. 2. Параметры сортировки
Сортировка по нескольким уровням осуществляется в том случае, если в таблице имеются столбцы, содержащие повторяющиеся значения. Тогда сортировка 1-го уровня осуществляет, по сути, группировку записей с одинаковым значением поля. Сортировка 2-го уровня осуществляет упорядочение данных в группах, полученных после сортировки 1-го уровня. Сортировка 3-го уровня упорядочивает данные в группах, полученных после сортировки 2-го уровня.
При наличии заголовков столбцов (имен полей) их следует исключить из области, подлежащей сортировке. Для этого используется переключатель Идентифицировать поля по подписям.
Кнопка Параметры выводит диалоговое окно Параметры сортировки, в котором задаются дополнительные установки сортировки: с учетом регистра или без учета; по столбцам или по строкам; порядок сортировки – обычный или специальный, выбранный из предлагаемого списка. Этот список можно сформировать самостоятельно с помощью Сервис/Параметры/вкладка Списки.
4.4.3. Фильтрация
Фильтрация данных в списке – это отбор данных по заданному критерию (условию). Осуществляется эта операция с помощью команды Данные/Фильтр. Имеется две разновидности этой команды, задаваемых параметрами: Автофильтр и Расширенный фильтр.
Фильтрация данных может осуществляться с помощью специальной формы, которая вызывается командой Данные/Форма.
4.4.4. Автофильтрация
Команда Данные/Фильтр/Автофильтр для каждого столбца строит список значений, который используется для задания условий фильтрации (Рис. 3). В каждом столбце появляется кнопка списка, нажав которую можно ознакомиться со списком критериев отбора.
Рис. 3. Список с автофильтром
Для каждого столбца в списке критериев отбора предусматриваются следующие варианты:
Рис. 4. Наложение условия по списку
Условие для отбора записей по конкретным значениям в определенном столбце может состоять из двух самостоятельных частей, соединенных логической связкой И/ИЛИ (Рис. 5). Каждая часть условия включает один из операторов отношения:
Рис. 5. Задание условия фильтрации
Примеры условий
Для поля Код предмета можно сформировать условия:
отобрать все записи, которые содержат код предмета, начинающийся с буквы п
отобрать все записи, которые не содержат кода предмета п1
4.4.5. Расширенный фильтр
Инструмент Расширенный фильтр позволяет задать условия отбора для нескольких столбцов независимо друг от друга и осуществить фильтрацию записей. Фильтрация выполняется по всем условиям одновременно. Все записи, не прошедшие через фильтр, будут скрыты.
Расширенный фильтр позволяет задать условия отбора двух типов критериев:
Если критерий фильтрации формируется в нескольких столбцах, его называют множественным критерием.
Технология использования расширенного фильтра состоит из двух этапов:
Технология формирования области условий
Правила формирования Критерия сравнения
2-й способ. Множественный критерий сравнения – условия (точные значения полей) записаны в двух строках (Таблица 3). Номер группы, код предмета и оценка заданы как точные значения. На одной строке указаны оценка «4», на другой – «5». Связка “ИЛИ”.
Таблица 3. Задание множественного критерия. Связка “ИЛИ”
Номер группы
Код предмета
Оценка
Вычисляемый критерий представляет собой формулу в виде логического условия, которая возвращает логическое значение ИСТИНА или ЛОЖЬ. Формула обязательно содержит оператор отношения, который сравнивает некоторые вычисляемые выражения.
Имя столбца, содержащего формулу вычисляемого критерия, должно отличаться от имени столбца в списке.
Пример
Из списка (Рис. 3) выбрать записи о студентах группы 133, получивших оценку ниже общего среднего балла или получивших оценку 5. Пример вычисляемого критерия представлен в таблице (Таблица 4). Столбец Номер группы имеет такое же имя как и столбец в исходном списке, потому что для отбора группы используется критерий сравнения. Имя столбца Оценка1 отличается от имени столбца в исходном списке, т.к. здесь используется вычисляемый критерий.
Таблица 4. 1-й способ задания вычисляемого критерия
Номер группы
Оценка1
Рис. 9. Исходная таблица для автостуктурирования
По каждому виду начислений в строке Итого рассчитывается с помощью функции СУММ общая сумма по ячейкам столбца. Порядок следования исходных данных и результатов (итогов) – слева направо, сверху вниз, позволяет применить автоструктурирование таблицы (Рис. 10).
После ввода в таблицу исходных данных и формул курсор устанавливается в произвольную ячейку списка и выполняется команда Данные/Группа и Структура/Создать структуру. Все структурные части таблицы создаются автоматически.
Рис. 10. Таблица после автоструктурирования
Структурирование таблицы с автоматическим подведением итогов
В среде Excel существует инструмент структурирования с одновременным подведением итогов. Команда Данные/Итоги создает структуру таблицы и одновременно вставляет строки промежуточных и общих итогов для выбранных столбцов в соответствии с заданной функцией (Таблица 8).
Примечание. Для получения итогов по группам следует заранее упорядочить строки списка с помощью команды Данные/Сортировка.
Подведение итогов выполняется при изменении значений в столбце, который образует группы.
Перед подведением итогов надо выполнить сортировку по одному или нескольким полям списка.
Команда Данные/Итоги может выполняться для одного списка многократно. Созданные ранее промежуточные итоги могут как заменяться новыми, так и оставаться неизменными посредством установки или снятия флажка параметра Заменить текущие итоги (Рис. 11). Таким образом, имеется возможность подведения итогов различных уровней вложенности.
Таблица 8. Функции для подведения автоматических итогов
Операция
Значение в строке итогов по группе
3 Что такое сортировка базы данных
Базы данных могут содержать сотни и тысячи записей. Часто бывает необходимо их упорядочить, т. е. расположить в определенной последовательности. Упорядочение записей называется сортировкой.
Сортировка записей производится по какому-либо полю базы данных. Значения, содержащиеся в этом поле, располагаются в порядке возрастания или убывания. В процессе сортировки целостность записей сохраняется, т. е. строки таблицы перемещаются целиком.
При сортировке по возрастанию данные различных типов выстраиваются в следующем порядке:
— числа — от наименьшего отрицательного до наибольшего положительного числа;
— текст — в алфавитном порядке (числа, знаки, латинский алфавит, русский алфавит);
— дата и время — в хронологическом порядке.
При сортировке по убыванию данные выстраиваются в порядке, обратном вышеуказанному.
Сортировка базы данных — это упорядочение записей по значениям одного из полей.
Например, после сортировки по возрастанию по текстовому полю «Фамилия» база данных «Записная книжка» примет вид, показанный в табл. 5.3.
Таблица 5.3. Результат сортировки базы данных «Записная книжка» |
№ | Фамилия | Телефон | |
2 | Иванов | 222-22-22 | ivanov@server.ru |
3 | Петров | 333-33-33 | petrov@server.ru |
1 | Сидоров | 111-11-11 | sidorov@server.ru |
Вложенные сортировки. В базах данных можно проводить вложенные сортировки, т. е. сортировать данные последовательно по нескольким полям. При вложенной сортировке строки, имеющие одинаковые значения в ячейках первого поля, будут упорядочены по значениям в ячейках второго поля, а строки, имеющие одинаковые значения во втором поле, будут упорядочены по значениям третьего поля.
В текстовых редакторах Microsoft Word и OpenOffice Writer сортировку записей в базе данных можно осуществить с помощью команды [Таблица-Сортировка. ]. В диалоговом окне Сортировка можно указать последовательность и порядок проведения вложенной сортировки.
В качестве примера осуществим вложенную сортировку базы данных «Компьютеры» по возрастанию по трем полям Тип компьютера, Процессор и Память (рис. 5.3).
№ | Тип компьютера | Процессор | Память |
4 | Настольный | Pentium 3 | 128 |
3 | Настольный | Pentium 4 | 256 |
1 | Настольный | Pentium 4 | 512 |
6 | Портативный | Pentium 3 | 64 |
2 | Портативный | Pentium 3 | 256 |
5 | Портативный | Pentium 4 | 128 |
В электронных таблицах существует режим сортировки, который позволяет после выбора любого столбца расширить диапазон сортируемых данных. В этом случае по данным выделенного столбца будут сортироваться строки (записи базы данных) целиком (рис. 5.4).
A | B | C | D | |
1 | № | Тип компьютера | Процессор | Память |
2 | 4 | Настольный | Pentium 3 | 128 |
3 | 3 | Настольный | Pentium 4 | 256 |
4 | 1 | Настольный | Pentium 4 | 512 |
5 | 6 | Портативный | Pentium 3 | 64 |
6 | 2 | Портативный | Pentium 3 | 256 |
7 | 5 | Портативный | Pentium 4 | 128 |
Сортировка данных в столбцах электронной таблицы.
Электронные таблицы позволяют сортировать данные в отдельных столбцах. Если в столбец электронной таблицы ввести данные одного типа (числа, текст, даты или время), можно произвести их сортировку по возрастанию или убыванию. Ниже приведена таблица 5.4, в которой сортировка данных в столбцах проведена следующим образом:
— в столбце А — сортировка чисел по возрастанию;
— в столбце В — сортировка текста по убыванию;
— в столбце С — сортировка дат по возрастанию;
— в столбце D — сортировка времени по убыванию.
Таблица 5.4. Сортировка чисел, текста, дат и времени в столбцах |
A | B | C | D | |
1 | -10 | бит | суббота, Январь 01,2000 | 20:30 |
2 | -5 | bit | понедельник, Март 03,2003 | 16:30 |
3 | $ | понедельник, Январь 12, 2004 | 12:30 | |
4 | 1 | 5 | среда, Март 03, 2004 | 8:30 |
5 | 5 | 1 | среда, Январь 12, 2005 | 4:30 |
1. В чем состоит различие между сортировкой записей базы данных и сортировкой данных в столбцах электронной таблицы?
5.5 Задание с кратким ответом. В каком порядке расположатся записи в базе данных «Компьютеры» (см. табл. 5.2) после сортировки по убыванию по полю Тип компьютера? По полю Процессор? По полю Память?
5.6 Практическое задание. В текстовом редакторе отсортировать базу данных «Записная книжка» (см. табл. 5.1) по полю Фамилия.
5.7 Практическое задание. В электронных таблицах отсортировать базу данных «Записная книжка» (см. табл. 5.1) по полю Фамилия.
5.8 Практическое задание. В текстовом редакторе осуществить вложенную сортировку базы данных «Компьютеры» (см. табл. 5.2) по возрастанию по полям Тип компьютера, Процессор и Память.
Изучаем SQL
При выборке данных бывает важно получить их в определенном упорядоченном виде. Сортировка может быть выполнена по любым полям с любым типом данных. Это может быть сортировка по возрастанию или убыванию для числовых полей. Для символьных (текстовых) полей это может быть сортировка в алфавитном порядке, хотя по сути, она так же является сортировкой по возрастанию или убыванию. Она так же может быть выполнена в любых направлениях – от А, до Я, и наоборот от Я, до А.
Суть процесса сортировки заключается к приведению последовательности к определенному порядку. Подробней о сортировки можно узнать в статье «Алгоритмы сортировки» Например, сортировка произвольной числовой последовательности по возрастанию:
должна привести к упорядоченной последовательности:
Аналогично, при сортировке по возрастанию строковых значений:
Иванов Иван, Петров Петр, Иванов Андрей
результат должен быть:
Иванов Андрей, Иванов Иван, Петров Петр
Здесь строка «Иванов Андрей» перешла в начало, так как сравнение строк производится посимвольно. Обе строки начинаются одинаковых символов «Иванов «. Так как символ «А» в слове «Андрей» идет раньше в алфавите, чем символ «И» в слове «Иван», то эта строка будет поставлена раньше.
Сортировка в запросе SQL
Для выполнения сортировки в строку запроса нужно добавить команду ORDER BY. После этой команды указывается поле, по которому производится сортировка.
Для примеров используем таблицу товаров goods:
num (номер товара) | title (название) | price (цена) |
1 | Мандарин | 50 |
2 | Арбуз | 120 |
3 | Ананас | 80 |
4 | Банан | 40 |
Данные здесь уже упорядочены по столбцу «num». Теперь, построим запрос, который выведет таблицу с товарами, упорядоченными в алфавитном порядке:
SELECT * FROM goods ORDER BY title
SELECT * FROM goods – указывает выбрать все поля из таблицы goods;
ORDER BY – команда сортировки;
title – столбец, по которому будет выполняться сортировка.
Результат выполнения такого запроса следующий:
num | title | price |
3 | Ананас | 80 |
2 | Арбуз | 120 |
4 | Банан | 40 |
1 | Мандарин | 50 |
Так же можно выполнить сортировку для любого из полей таблицы.
Направление сортировки
По умолчанию, команда ORDER BY выполняет сортировку по возрастанию. Чтобы управлять направлением сортировки вручную, после имени столбца указывается ключевое слово ASC (по возрастанию) или DESC (по убыванию). Таким образом, чтобы вывести нашу таблицу в порядке убывания цен, нужно задать запрос так:
SELECT * FROM goods ORDER BY price DESC
Сортировка по возрастанию цены будет:
SELECT * FROM goods ORDER BY price ASC
Сортировка по нескольким полям
SQL допускает сортировку сразу по нескольким полям. Для этого после команды ORDER BY необходимые поля указываются через запятую. Порядок в результате запроса будет настраиваться в той же очередности, в которой указаны поля сортировки.
column1 | column2 | column3 |
3 | 1 | c |
1 | 3 | c |
2 | 2 | b |
2 | 1 | b |
1 | 2 | a |
1 | 3 | a |
3 | 4 | a |
Отсортируем таблицу по следующим правилам:
SELECT * FROM mytable ORDER BY column1 ASC, column2 DESC, column3 ASC
Т.е. первый столбец по возрастанию, второй по убыванию, третий опять по возрастанию. Запрос упорядочит строки по первому столбцу, затем, не разрушая первого правила, по второму столбцу. Затем, так же, не нарушая имеющихся правил, по третьему. В результате получится такой набор данных:
column1 | column2 | column3 |
1 | 3 | a |
1 | 3 | c |
1 | 2 | a |
2 | 2 | b |
2 | 1 | b |
3 | 1 | a |
3 | 1 | c |
Порядок команды ORDER BY в запросе
Сортировка строк чаще всего проводится вместе с условием на выборку данных. Команда ORDER BY ставится после условия выборки WHERE. Например, выбираем товары с ценой меньше 100 рублей, упорядочив по названию в алфавитном порядке:
SELECT * FROM goods WHERE price 100 ORDER BY price ASC
формировать понятие «сортировка информации»; рассмотреть виды сортировок; познакомить с алгоритмом простой и вложенной сортировок; научить сортировать данные в Microsoft Access; формировать умение работать с конструктором запросов; развивать навыки по заполнению и редактированию базы данных.
Оборудование и материалы:
- Организационный момент — 1 мин.
1. Организационный момент.
Приветственное слово учителя. Проверка присутствующих.
2. Актуализация знаний учащихся.
Ребята, чтобы узнать тему нашего сегодняшнего урока, вам предстоит разгадать «Чайнворд».
Вопросы к «Чайнворду»:
Ответы: 1 — сетевая, 2 — поле, 3 — запрос, 4 — счётчик, 5 — таблица, 6 — форма, 7 — реляционная, 8 — ключевое, 9 — конструктор, 10 — запись.
Ключевое слово — сортировка.
3. Изучение нового материала.
Эпиграфом к уроку являются слова Александра Анатольевича Стекольникова:
«Наш мир — не случайность, не хаос, —
Есть система во всем:»
И сегодня вы должны научиться упорядочивать данные в СУБД Access.
Попробуйте самостоятельно сформулировать понятие «сортировка». Определение записываем в тетрадь.
Вопросы учащимся. Уточните.
Далее учитель показывает на своём компьютере способы организации сортировки данных в СУБД Access. Все действия проецируются через мультимедийный проектор на экран.
Существует два способа (соответствующих видам сортировки).
1-й способ в режиме «Таблица»:
2-й способ в режиме «Запросы» (создаётся запрос, в котором устанавливается необходимая сортировка):
состоит из двух частей; в верхней части отображается окно, содержащее структуру таблицы; нижняя часть — бланк запроса, в котором выбираются имена полей, тип сортировки и указываются условия отбора ;
Таблица «Небоскрёбы» после вложенной сортировки будет выглядеть так :
На основе показанных примеров учитель объясняет алгоритм упорядочения записей при вложенной сортировке.
4. Практическая работа на закрепление нового материала.
Перед выполнением практической работы учитель:
Оценка учащихся будет зависеть от количества выполненных заданий и от полноты своей БД, т.к. проследить упорядочивание записей можно, если их количество больше или равно 10.
Во время практической работы учитель индивидуально принимает результаты выполненных заданий и консультирует тех, кому требуется помощь.
Если учащиеся быстро выполнили задания практической работы, тогда они продолжают заполнять свою БД; добавляют новые поля, записи или улучшают дизайн формы (при помощи дидактического материала с алгоритмами различных способов расширения базы данных ).
5. Домашнее задание.
Выучить записи в тетради.
6. Оценка работы и подведение итогов.
Учитель объявляет оценки за практическую работу.
Затем подводятся итоги урока.
Сегодня, ребята, вы хорошо поработали. Мы много успели сделать. На этом наш урок закончен, до свидания.