§ 15. Сортировка, удаление и добавление записей
Основные темы параграфа:
♦ команда выборки с параметром сортировки;
♦ ключи сортировки;
♦ сортировка по нескольким ключам;
♦ команды удаления и добавления записей.
Команда выборки с параметром сортировки
Очень часто записи в таблицах
бывают упорядочены по какому-то правилу. Например, в телефонных
справочниках — в алфавитном порядке фамилий абонентов; в расписании
движения поездов — в порядке времени отправления; в таблице футбольного
чемпионата — по возрастанию номеров мест, которые занимают команды.
Процесс упорядочения записей в таблице называется сортировкой. Для выполнения сортировки должна быть указана следующая информация:
а) по значению какого поля производить сортировку;
б) в каком порядке сортировать записи (по возрастанию или убыванию значений поля).
В команду выборки можно добавить параметры сортировки, в соответствии с которыми будут упорядочены строки в итоговой таблице. В таком случае формат команды выборки становится следующим:
.выбрать <список выводимых полей>
где <условия выбора>
сортировать <ключи сортировки>
по <порядок сортировки>
Ключи сортировки
Ключом сортировки называется поле, по значению которого производится сортировка. Возможны два варианта порядка сортировки: по возрастанию значений ключа и по убыванию значений ключа.
Отсортируем записи таблицы «Погода» по убыванию значений влажности. Для этого нужно отдать команду:
.выбрать все сортировать ВЛАЖНОСТЬ по убыванию
В результате выполнения этой команды будет получена таблица 3.7.
Таблица 3.7. Таблица «Погода», отсортированная по убыванию влажности
ДАТА | ОСАДКИ | ТЕМПЕРАТУРА | ДАВЛЕНИЕ | ВЛАЖНОСТЬ |
17/03/03 | Туман | 1,0 | 740 | 100 |
18/03/03 | Дождь | 3,4 | 745 | 96 |
19/03/03 | Без осадков | 5,2 | 760 | 87 |
15/03/03 | Снег | -3,5 | 746 | 67 |
16/03/03 | Без осадков | 0 | 750 | 62 |
А теперь отсортируем записи БД
«Домашняя библиотека» в алфавитном порядке по фамилиям авторов. В
итоговую таблицу выберем только сведения о книгах, изданных после 1985
года. Выведем три поля: АВТОР, НАЗВАНИЕ, ГОД. Для этого нужно выполнить
команду:
. выбрать АВТОР, НАЗВАНИЕ, ГОД где ГОД>1985 сортировать АВТОР по возрастанию
В итоге получим таблицу 3.8.
Таблица 3.8. Таблица «Домашняя библиотека», отсортированная в алфавитном порядке фамилий авторов
АВТОР | НАЗВАНИЕ | ГОД |
Беляев А.Р. | Человек-амфибия | 1987 |
Беляев А.Р. | Звезда КЭЦ | 1990 |
Беляев А.Р. | Избранное | 1994 |
Кервуд Д. | Бродяги севера | 1991 |
Олеша Ю.К. | Избранное | 1987 |
Толстой Л.Н. | Повести и рассказы | 1986 |
Сортировка по нескольким ключам
Нередко приходится встречать таблицы, в которых строки
отсортированы по значениям нескольких полей. Например, если мы хотим,
чтобы в полученной таблице (см. табл. 3.8) книги одного автора были
упорядочены в списке в алфавитном порядке их названий, то команду
выборки нужно записать так:
. выбрать АВТОР, НАЗВАНИЕ, ГОД где ГОД>1985 сортировать АВТОР по возрастанию, НАЗВАНИЕ по возрастанию
Здесь указаны два ключа сортировки: поле АВТОР является первым ключом сортировки, поле НАЗВАНИЕ — вторым ключом сортировки. Сначала записи сортируются по возрастанию значений первого ключа (АВТОР), затем среди записей с одинаковыми значениями первого ключа происходит сортировка по значениям второго ключа (НАЗВАНИЕ). В результате получим таблицу (показана только часть таблицы, относящаяся к книгам Беляева А. Р. Порядок остальных строк не изменится):
АВТОР | НАЗВАНИЕ | ГОД |
Беляев А.Р. | Звезда КЭЦ | 1990 |
Беляев А.Р. | Избранное | 1994 |
Беляев А.Р. | Человек-амфибия | 1987 |
Команды удаления и добавления записей
Информация в базах данных часто подвергается изменениям.
Например, БД «Погода» каждый день должна пополняться. Состав домашней
библиотеки также со временем меняется. Мы покупаем книги, иногда дарим
их друзьям. Все эти изменения должны сразу же отражаться в базе данных.
Следовательно, в языке общения с СУБД должны присутствовать команды,
позволяющие вносить такие изменения. В нашей гипотетической СУБД есть
для этих целей две команды. Первая позволяет удалять строки из таблицы.
Ее формат такой:
. удалить где <логическое выражение>
Чтобы удалить из БД одну конкретную запись, нужно указать
значение ключа этой записи. Например, если применительно к БД «Домашняя
библиотека» отдать команду
. удалить где НОМЕР="0003"
то сведения о книге под номером 3 будут исключены из таблицы. Если по отношению к БД «Школа» выполнить команду
. удалить для ГОРОД="Шадринск" и НОМЕР ШКОЛЫ=1
то из таблицы будет исключена вторая запись.
Вот еще пример. После выполнения команды
. удалить где ГОД<1985
из БД «Домашняя библиотека» исчезнут записи с номерами 3, 6 т. е. книги, выпущенные до 1985 года.
Если же нужно удалить все записи из таблицы, то это делается командой
. удалить все
Примечание. Часто в реальных СУБД по команде «удалить» лишь помечаются записи, предназначенные для удаления. Исключение их из файла происходит после выполнения процедуры сжатия файла.
Если к готовой базе данных требуется добавить новые записи, то это всегда можно сделать с помощью уже знакомой вам команды:
. добавить запись
По этой команде пользователю предоставляется возможность ввести значения полей новой записи, которая занесется в конец таблицы.
Коротко о главном
Сортировка БД — это упорядочение записей в таблице по возрастанию или убыванию значений какого-нибудь поля — ключа сортировки. Сортировка может производиться по нескольким ключам одновременно.
Изменение состава записей в БД происходит путем удаления ненужных записей и добавления новых. Добавленная запись помещается в конец таблицы.
Вопросы и задания
1. Что понимается под сортировкой базы данных?
2. Что такое ключ сортировки?
3. В каком случае и каким образом производится сортировка по нескольким ключам?
4. С помощью каких команд изменяется состав записей БД?
5. Запишите команды для выполнения следующих действий с БД «Домашняя библиотека»;
а) сортировки в порядке возрастания годов издания книги;
б) сортировки по двум ключам: АВТОР и ГОД, исключая книги Беляева А.Р.;
в) удаления из БД «Домашняя библиотека» всех записей о книгах, стоящих на пятой полке и изданных до 1990 года.