Вторник, 26.11.2024, 23:32
Главная Регистрация Вход
Приветствую Вас, Гость · RSS
Меню сайта
Статистика
Конкурс!
конкурс сайтов
 п. 15. Сортировка, удаление и добавление записей

§ 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 года.


  Итоговый тест к главе 3 "Хранение и обработка информации в базах данных"




Copyright MyCorp © 2024
ИКТ 2014
Архив записей
Друзья сайта
  • Официальный блог
  • Сообщество uCoz
  • FAQ по системе
  • Инструкции для uCoz
  • Бесплатный хостинг uCoz