Сортировка и создание запросов в LibreOffice Base

Следующее, чему следует научиться после создания базы данных, — работа с данными в ней. Сегодня рассмотрим, как в LibreOffice Base выполняются сортировка и создание запросов к базе данных, а также узнаем, как их печатать.

В качестве «испытуемой» будем использовать базу данных клиентов, которую мы создали на прошлом уроке. Откроем её в LibreOffice Base и выберем пункт Таблицы в окне База данных:

Сортировка создание запросов LibreOffice Base

Сортировка представляет собой процесс упорядочения записей в таблице. Она может выполнятся по возрастанию или по убыванию значений ключа сортировки. Ключ сортировки — это поле, по значению которого производится сортировка. Ключей может быть несколько, и тогда они называются, соответственно, первичным, вторичным и так далее.
Для примера отсортируем дисконтные карты проценту предоставляемых ими скидок. Самую большую выведем сверху — это будет сортировка по убыванию. Откроем таблицу Дисконтные карты, двойным щелчком по ней (или выбором в контекстном меню кнопки Открыть) в окне Таблицы и выделим столбец Размер скидки — для этого щёлкнем по его «шапке». Затем выберем на панели инструментов кнопку По убыванию (base-kn-1) и нажмём её. Получим таблицу, отсортированную по размеру скидки клиента:

Сортировка создание запросов LibreOffice Base

Чтобы использовать несколько ключей сортировки нужно вызвать окно, определяющее их порядок. Оно вызывается кнопкой Сортировать (base-kn-2) и позволяет выбрать последовательность и порядок их использования. Например, так:

Сортировка создание запросов LibreOffice Base

Задание нескольких ключей позволяет определить, как будут упорядочены записи, у которых совпадает ключ сортировки, и унифицировать работу с данными.

Запросы используют для извлечения какой-либо информации из базы данных. Обычно данные в запросе должны отвечать условиям, определяемым пользователем, и содержат данные сразу из нескольких таблиц. Результат запроса обычно выводится в виде таблицы, все записи которой удовлетворяют заданным условиям.
В LibreOffice Base создавать запросы можно в режиме дизайна запросов, мастера запросов и SQL. Для начала рассмотрим его второй метод. Выберем пункт Запросы в окне База данных и пункт Использовать мастер для создания запросов... в окне Задачи. Откроется окно Мастера запросов, в котором на первом шаге нам будет предложено выбрать поля, выводимые в запросе. Предположим, нам нужно вывести список клиентов, у которых набралось больше 30 баллов и обзвонить их. Для такого списка нам понадобятся поле Количество баллов из таблицы Дисконтные карты и поля Имя, Фамилия, Номер телефона из таблицы Клиенты. Выбираем в выпадающем списке таблицу и перекидываем нужное из окна Доступные поля в окно Поля в запросе:

Сортировка создание запросов LibreOffice Base

Нажимаем кнопку Дальше и в следующем окне определяем порядок сортировки данных в итоговой таблице. Допустим, в начале списка нам хочется видеть клиентов с большим количеством баллов. Тогда сортировка будет такой:

Сортировка создание запросов LibreOffice Base

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

Сортировка создание запросов LibreOffice Base

Тип запроса оставим по умолчанию — Детальный. Далее нам предлагается выбрать альтернативные названия полей. Их необязательно, но удобно использовать, чтобы поля в таблице запросов были более понятными пользователю. Например, так:

Сортировка создание запросов LibreOffice Base

Также можно использовать псевдоним, если поля из разных таблиц имеют одно и то же имя.
В конце остаётся только определить название запроса и выбрать действие с ним:

Сортировка создание запросов LibreOffice Base

Нажимаем кнопку Готово и получаем таблицу с запросом:

Сортировка создание запросов LibreOffice Base

Очевидно, что в таблице отображается что-то не то. А именно, для каждой записи первой таблицы выводятся все записи второй. Это значит, что таблицы, из которых мы получаем информацию, не связаны между собой. Чтобы создать эту связь откроем запрос в Конструкторе запросов — в окне Запросы правой кнопкой вызываем контекстное меню для нашего запроса и выбираем пункт Изменить. Откроется окно, в котором отобразятся таблицы. Щёлкнем по полю Номер дисконтной карты таблицы Клиенты и перетащим курсор на поле Номер дисконтной карты таблицы Дисконтные карты. Появится линия, соединяющая эти поля:

Сортировка создание запросов LibreOffice Base

Также проверим условие выбора клиентов и уберём в выражении >’30’ одинарные кавычки — иначе возникнет синтаксическая ошибка в выполнении запроса.
После соединения таблиц снова выполним запрос кнопкой Выполнить запрос (base-kn-3) или F5. Или сначала сохраним запрос кнопкой Сохранить и запустим его из главного окна базы. Получим искомый результат:

Сортировка создание запросов LibreOffice Base

Другой путь — создание запроса в режиме дизайна. Создадим в нём запрос с тем же условиями, что и выше. Нажимаем кнопку Создать запрос в режиме дизайна... и в открывшемся окне добавления выбираем нужные нам таблицы и нажимаем кнопку Добавить (два раза, так как таблиц две):

Сортировка создание запросов LibreOffice Base

В верхней части экрана при этом появятся выбранные таблицы, а в нижней мы будем формировать запрос. Сначала в строке Поле последовательно укажем все нужные нам поля. Затем, в строчке Псевдоним под ними впишем альтернативные названия. Строки Таблица и Видимый заполняются автоматический, нам остаётся только указать параметры сортировки и условие. В нашем случае готовая таблица запроса будет выглядеть так:

Сортировка создание запросов LibreOffice Base

Теперь остаётся только сохранить запрос соответствующей кнопкой (base-kn-4) и выполнить его кнопкой base-kn-3. Закономерно получим такой же результат, как в прошлый раз:

Сортировка создание запросов LibreOffice Base

Очевидно, что создание запроса в режиме мастера состоит из большего числа шагов и имеет ряд не очевидных нюансов. Поэтому для создания запросов мы рекомендуем пользоваться режимом дизайна.

Создавать запрос в режиме SQL мы не будем, так как это наиболее сложный способ, который предполагает, что пользователь умеет писать запросы на этом языке. Однако, любой созданный ранее запрос можно увидеть в виде команд SQL, если в контекстном меню запросы выбрать пункт Редактировать в режиме SQL...

Чтобы напечатать запрос или таблицу из базы для дальнейшего использования, нужно открыть текстовый документ или электронную таблицу, которые мы будем отправлять на печать, и базу данных, из которой будем брать информацию. Затем выполним перетаскивание имени нужной таблицы/запроса в открытый документ, что автоматически откроет диалоговое окно Вставка столбцов базы данных. В нём будет предложено выбрать формат вставки данных и столбцы, которые должны быть в таблице:

Сортировка создание запросов LibreOffice Base

Также можно нажать кнопку Автоформат и выбрать внешний вид вставляемой таблицы. Остаётся нажать кнопку ОК и распечатать документ как обычно — с помощью команды Файл->Печать.

На этом уроке мы постарались рассмотреть основные приёмы, необходимые для создания запросов и выполнения сортировки в базах данных LibreOffice Base. Однако, если у вас остались вопросы по данной теме, вы можете задать их в комментариях или на нашем форуме. Мы постараемся оперативно на них ответить 🙂

15 комментариев

  1. От Михаил

    Ответить

    • От Катерина

      Ответить

  2. От Ярослав

    Ответить

    • От Катерина

      Ответить

  3. От Светлана

    Ответить

    • От Катерина

      Ответить

  4. От Алексей

    Ответить

  5. От Наталия

    Ответить

    • От Катерина

      Ответить

  6. От Наталия

    Ответить

  7. От Ирина

    Ответить

  8. От Дарья

    Ответить

    • От Дарья

      Ответить

  9. От Виктория

    Ответить

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *