Урок №9. Разработка однотабличной базы данных.
После открытия файла появляется основное окно базы данных.

Сейчас в левой части есть группа Таблицы, а внизу мы видим список всех таблиц (здесь одна таблица Учебники).
После двойного щелчка на названии таблицы она открывается в отдельном окне в режиме редактирования данных

В левой части расположена область выделения, щелчок в ней выделает текущую (активную, рабочую) запись, которая выделяется цветом..
Текущая запись — это запись, с которой работает пользователь в настоящий момент.
В нижней строке окна находятся кнопки для перехода по записям и кнопка для вставки новой записи. Новая
запись всегда добавляется в конец таблицы.
На рисунке найдите номер текущей записи и общее количество записей в таблице.
При щелчке на кнопке «Найти» на панели инструментов открывается окно, в котором можно задать образец и режимы поиска (искать вперёд, назад, в текущем поле или во всех полях и т. д.).
Используя всплывающую подсказку, выясните, как с помощью клавиатуры можно открыть окно поиска.
Сортировка — это расстановка данных в определённом порядке.
Простейший вариант сортировки — сортировка по текущему столбцу (по тому, в котором стоит курсор). Для этого служат (Сортировать по возрастанию) и Сортировать по убыванию на панели инструментов, задающие соответственно алфавитный и обратный алфавитный порядок. Кнопка «Сортировать» позволяет применить несколько уровней сортировки, например отсортировать книги по авторам, а, в свою очередь, книги одного автора отсортировать ещё и по году издания.
Важно понимать, что при сортировке физическое расположение записей в базе данных (в файле на диске) не изменяется, они переставляются в списке только при выводе на экран.
Представьте себе, что при каждой сортировке программа изменяла бы расположение данных на диске. Какие достоинства и недостатки есть у такого решения?
На уроках химии вы использовали фильтрацию, чтобы отделить осадок от жидкости. В базах данных фильтр служит для того, чтобы оставить нужные записи и временно скрыть ненужные.
Фильтр — это условие для отбора записей.
Самый простой вариант — это быстрый фильтр (или фильтр по выделенному). Он отбирает все записи, в которых значение текущего поля совпадает со значением активной ячейки таблицы. Например, чтобы оставить только книги издательства «БИНОМ. Лаборатория знаний», нужно сделать активной ячейку, содержащую это название, и щелкнуть на кнопке «Быстрый фильтр» на панели инструментов.
Записи, не удовлетворяющие заданному условию, при фильтрации не удаляются из таблицы, а временно скрываются. Чтобы снова показать все записи, нужно отменить фильтр, щёлкнув на кнопке «Отменить фильтр». При включённом фильтре эта
кнопка выделяется серым фоном (активна).
Сложный фильтр, устанавливающий ограничения на несколько полей, можно задать с помощью кнопки «Расширенный фильтр«. В диалоговом окне задаётся сложное условие, в котором можно использовать логические операции И (AND) и ИЛИ (OR) .
Фильтры служат для быстрого отбора записей по простым условиям. С каждой таблицей может храниться только один фильтр. Если нужно постоянно использовать несколько разных фильтров или более сложные условия отбора, применяют запросы, с которыми мы познакомимся далее.
Работать с готовой базой данных мы уже научились, теперь займёмся созданием новой базы «с нуля». Построим однотабличную базу данных Футбол, в которую запишем количество побед, ничьих и поражений нескольких футбольных команд за последний сезон, а также среднюю зарплату футболистов (рис. 6.11).

Рис. 6.11
Запустим пакет OpenOffice и выберем пункт меню База данных. Мастер (программный модуль, который облегчает выполнение стандартных действий) предлагает на выбор три варианта:
- создать новую базу данных;
- открыть существующую базу;
- подключиться к существующей базе, например к базе Microsoft Access или к адресной книге почтовой программы. Выберем первый пункт. После этого нам предлагается зарегистрировать базу данных — в этом случае мы сможем использовать данные из неё в других программах OpenOffice.
В новой базе ещё нет ни одной таблицы. Создать новую таблицу можно двумя способами, которые перечислены в области Задачи (рис. 6.12).

Режим дизайна иначе называется Конструктор, это означает, что всю работу приходится выполнять вручную. Мастер позволяет быстро построить таблицу на основе одного из готовых шаблонов.
Выбираем режим дизайна. Появляется окно, где нужно в первом столбце ввести названия всех полей новой таблицы, а во втором — выбрать их типы из выпадающего списка (рис. 6.13).

Здесь использованы три различных типа данных:
- Текст [VARCHAR] — текстовая строка переменной длины;
- Целое [INTEGER] — целое число;
- Десятичное [DECIMAL] — десятичное число, которое хранится с заданным числом знаков в дробной части; применяется, например, для работы с денежными суммами.
Выясните, какие ещё типы данных используются в вашей СУБД.
Сделать поле Команда ключевым можно с помощью контекстного меню. Если выделить несколько полей (щёлкая в области выделения при нажатой клавише Ctrl), можно таким же способом создать составной ключ таблицы, состоящий из всех выделенных полей.
В нижней части окна Конструктора настраиваются свойства выделенного поля, например:
- максимальный размер для текста;
- количество знаков в дробной части для десятичного числа;
- значение по умолчанию (которое автоматически вписывается в поле при создании новой записи).
Если в таблице в качестве первичного ключа используется поле-счётчик (его значение увеличивается на единицу при добавлении новой записи), для него нужно установить свойство Автозначение равным Да. Такое поле будет заполняться автоматически.
Можно потребовать, чтобы значение какого-то поля обязательно было задано для каждой добавляемой записи (вспомните обязательные поля при регистрации на веб-сайтах). Для этого нужно установить значение Да свойства Обязательное.
Формат вывода значения на экран (например, число знаков в дробной части, выравнивание, выделение отрицательных значений красным цветом и т. п.).
При закрытии окна Конструктора будет предложено сохранить таблицу и ввести её название, затем новая таблица появится в списке таблиц.
Для пользователя любой информационной системы в первую очередь важно, чтобы он смог выбрать из базы данных ту информацию, которая ему в данный момент нужна. Для этого используются запросы.
Как вы уже знаете, в большинстве современных СУБД для управления данными (т. е. для составления запросов) используется язык SQL. Изучение этого языка выходит за рамки школьного курса, поэтому мы будем использовать в основном визуальные (наглядные) средства составления запросов. В то же время при желании вы сможете «подсмотреть», как выглядит составленный вами запрос на языке SQL.
Используя дополнительные источники, выясните, какие типы запросов можно использовать для управления данными.
Конструктор запросов
Продолжим работу с базой данных Футбол, которую мы недавно создали. Перейдём в окне базы данных на страницу Запросы и выберем в области Задачи вариант Создать запрос в режиме дизайна. Появится окно Конструктора, программа предложит добавить в рабочую область таблицу, из которой будут выбираться данные.
Названия полей, которые нужно включить в запрос, можно перетаскивать мышью в пустые столбцы бланка в нижней части окна Конструктора (рис. 6.14)

В нашем случае в запрос добавлены поля Команда, Победы и Зарплата.
Чтобы увидеть результаты запроса, нужно щёлкнуть на кнопке «Выполнить запрос» на панели инструментов. Результат выполнения запроса — это таблица, которая не сохраняется в файле, а строится в момент выполнения запроса. Однако она напрямую связана с данными — если вы измените что-то в результатах запроса, эти изменения будут внесены в базу данных. Такие изменения разрешены только тогда, когда в запросе есть первичный ключ таблицы.
Перейдём обратно в Конструктор и сделаем так, чтобы список команд был отсортирован по убыванию числа побед. Для этого в столбце Победы нужно для параметра Сортировка выбрать из выпадающего списка значение по убыванию. Теперь можно заново выполнить запрос и посмотреть на результат.
Используя всплывающие подсказки, выясните, как можно выполнить запрос с помощью клавиатуры.
Если закрыть окно Конструктора, программа предложит сохранить запрос и ввести его имя. Оно не может совпадать с именем уже существующей таблицы или запроса.
После этого запрос появляется в списке запросов в основном окне базы данных. Двойной щелчок на имени запроса открывает окно с результатами. Нажав правую кнопку мыши на заголовке столбца таблицы в этом окне, можно настроить формат столбца (тип данных, выравнивание).
Критерии отбора
Теперь отберём только те команды, которые одержали более 10 побед. Для этого в столбце Победы зададим критерий отбора >10 (строка Критерий) и проверим запрос.
Добавим второе условие отбора в той же строке Критерий: для поля Зарплата установим критерий >15000. Теперь СУБД отберёт только те записи, для которых одновременно выполняются оба критерия, т. е. условия в одной строке объединяются с помощью логической операции AND (И). В строке с заголовком или можно записать условие, которое будет объединяться с первым с помощью логической операции ИЛИ.
Для текстовых данных можно указывать не только точное значение, но и шаблон (вспомните, как строятся маски имён файлов). Например, если в критерий отбора для поля Команда ввести
LIKE ‘К*’
будут отобраны только те команды, названия которых начинаются с буквы «К». Здесь слово LIKE обозначает «такой, как…», «похожий на…», а звёздочка — любое количество любых символов. Кроме звёздочки можно использовать знак «?», обозначающий один любой символ.