На прошлом уроке мы с вами выяснили, что условие выбора – это логическое выражение.
Логическое выражение – это либо истинное, либо ложное утверждение.
Существует три основных логических операции: отрицание – НЕ (NOT), конъюнкция – И (AND), дизъюнкция – ИЛИ (OR).
В ячейках таблицы конструктора запросов записываются условия для значений соответствующих полей.
Если условия записаны в одной строке, то они соединяются между собой операцией И и выполняются одновременно.
Если условия записаны в разных строках, то они соединяются операцией ИЛИ. Здесь сначала отбираются записи, которые удовлетворяют условиям первой строки, затем к ним добавляются записи, удовлетворяющие условиям второй строки, и т. д.
Сегодня на уроке мы с вами:
· Закрепим навыки по созданию и заполнению таблиц;
· Отработаем приёмы реализации сложных запросов на выборку.
Первое задание. Нужно запустить базу данных LibreOffice Base. В базе данных «Государства» по предложенному образцу необходимо создать таблицу «Крупные города», соответствующую следующему отношению: Крупные города (номер, крупный город, население).
Запустим базу данных LibreOffice Base. Теперь откроем базу данных «Государства». Нам нужно создать таблицу «Крупные города».
Выбираем вкладку Таблицы, в окне Задачи выбираем Создать таблицу в режиме дизайна. Откроется конструктор таблиц. В названии поля вводим Номер, тип поля выбираем числовой. Далее вводим название полей Крупный город и Население, типы которых будут текстовый и числовой. Затем необходимо задать первичный ключ. В данной таблице это будет поле с названием Номер. Для того чтобы установить первичный ключ, нажимаем правой кнопкой мыши на ячейке слева от этого поля и в контекстном меню выбираем Первичный ключ.
На панели инструментов нажимаем кнопку Сохранить, указываем имя таблицы Крупные города, затем жмём кнопку Окей. Закрываем наш конструктор.
Свяжем таблицу «Государства» с таблицей «Крупные города».
Теперь необходимо внести данные в таблицу. Для этого нажимаем два раза левой кнопкой мыши на название Крупные города. Перед нами откроется таблица, которую нам необходимо заполнить. Заполняем таблицу по представленному образцу. Обратите внимание, в предложенном образце даны номера, под которыми данные страны находятся в общей базе. Это нужно для того чтобы сохранилась синхронизация таблиц.
После ввода данных сохраняем изменения и закрываем таблицу.
Теперь нам нужно с помощью конструктора запросов реализовать следующие запросы, используя данные из нескольких таблиц и сложные условия выбора.
Следующий пример. Необходимо получить список всех стран с населением больше 90 тысяч человек и государственной религией – христианство. Полученный список отсортировать в алфавитном порядке по полю страна.
Создадим запрос. Для этого выбираем объект Запросы и далее команду Создать запрос в режиме дизайна.
Перед нами окно конструктора запросов.
В верхней части окна конструктора запросов находится Поле схемы запроса — это место, куда помещаются схемы таблиц, данные из которых используются в запросе.
Для выполнения этого запроса нам понадобится информация из двух таблиц: «Государства» и «Религия».
Команда на гипотетическом языке запросов будет иметь вид:
Точка выбрать Государства точка Номер, Государства точка Страна, Государства точка Население, Религия точка религия.
Сортировать Государства точка Страна по возрастанию.
В окне Добавление таблицы на вкладке Таблицы выбираем название таблицы «Государства», нажимаем Добавить, затем – название таблицы «Религия» нажимаем Добавить и Закрыть.
Заполним Бланк запроса. В этом запросе нам нужно чтобы на экране отобразились не все данные. Поэтому в строке Критерий необходимо задать условия отбора. Для поля «Население» указать больше 90. А для поля «Религия» – христианство. Также нам нужно указать в строке «Сортировка» в поле «Страна» по возрастанию. Закрываем окно запроса и сохраняем его под названием Запрос 1.
Посмотрим результат выполнения данного запроса. Для этого нажимаем два раза левой кнопкой мыши на Запрос 1. В результате мы получили таблицу, в которой отображены Страны с населением больше 90 тысяч человек и государственной религией – христианство. Также страны отсортированы в алфавитном порядке.
Рассмотрим следующий пример. Нужно получить список всех стран, в которых наивысшая точка не больше 2500 метров ИЛИ государственный язык английский. А также выполнить сортировку по убыванию Наивысших точек.
Выбираем объект Запросы и далее команду Создать запрос в режиме дизайна.
Для выполнения этого запроса нам понадобится информация из двух таблиц: «Государства» и «Языки».
Команда на гипотетическом языке запросов будет иметь вид:
Точка выбрать Государства точка Номер, государства точка Страна, государства точка Наивысшая точка, Государства точка Высота, Языки точка Язык.
Сортировать государства точка Наивысшая точка по убыванию.
Заполним Бланк запроса. В этом запросе нам нужно чтобы на экране отобразились не все данные. Поэтому в строке Критерий необходимо задать условия отбора. Для поля «Высота» указать меньше либо равно 2500. Далее следует логическая операция ИЛИ.
Напомним, для объединения двух условий операцией ИЛИ их записывают в разных строках.
Во второй строке в поле «Язык» указываем «английский». Также нам нужно указать в строке «Сортировка» в поле «Наивысшая точка» по убыванию. Закрываем окно запроса и сохраняем его под названием Запрос 2.
Посмотрим результат выполнения данного запроса. Для этого нажимаем два раза левой кнопкой мыши на Запрос 2. В результате мы получили таблицу, в которой отображены Страны, где наивысшая точка не больше 2500 метров или государственный язык – английский. Также данные отсортированы по убыванию Наивысших точек.
В нашу таблицу попали страны, в которых Наивысшие точки больше чем 2500 метров.
Такой результат мы получили, потому что при выполнении запроса сначала отбирались записи, которые удовлетворяют условиям первой строки, затем к ним добавлялись записи, удовлетворяющие условиям второй строки, и т. д.
При формировании данного запроса мы использовали знак меньше либо равно. Также можно использовать и другие знаки отношения: равно, больше, меньше, больше либо равно, не равно.
Например, если в нашем примере в поле «английский» мы изменим условие на «не равно английский», то будут выбраны все страны, в которых наивысшая точка не больше 2500 метров или английский не является государственным языком.
Обратите внимание, на запись номер 76. В задаче для объединения двух условий используется операция ИЛИ. Эта страна попала в наш список, так как поле высота подходит под первое условие.
Рассмотрим следующий пример. Получить список всех стран, в которых государственный язык не французский, название столицы начинается на букву А и государственная религия ислам.
Выполним данный запрос с помощью Мастера для создания запросов.
Выбираем объект Запросы и далее команду Использовать мастер для создания запроса.
Для выполнения этого запроса нам понадобится информация из трёх таблиц: «Государства», «Языки» и «Религия».
Команда на гипотетическом языке запросов будет иметь вид:
Точка выбрать Государства точка Номер, Государства точка Страна, Государства точка Столица, Языки точка Язык, Религия точка Религия.
Затем нам необходимо выбрать поля для таблицы запроса.
В окошке Таблицы выбираем таблицу Государства. В окошке Доступные поля отобразились все поля из таблицы Государства. Согласно нашему условию нам понадобятся поля: Номер, Страна, Столица.
Теперь выбираем таблицу Религия и добавляем поле Религия. Из таблицы Языки добавим поле Язык. И затем нажимаем дальше.
Так как по условию нам не нужна сортировка, то этот пункт мы пропускаем и нажимаем дальше.
Теперь нам нужно указать условия поиска данных.
Первое условие: государственный язык не французский. В окошке поле выбираем Языки точка Язык. В окошке Условие – не равно. В окошке Значение – французский.
Второе условие: название столицы начинается на букву А.
Лайк (LIKE) – это команда LibreOffice для поиска содержимого поля, которое либо начинается на нужное выражение, либо нужное выражение встречается внутри поля, либо в конце поля.
Местозаполнитель звёздочка означает, что нужное выражение встречается в начале (выражение звёздочка), в конце (звёздочка выражение) или внутри (звёздочка выражение звёздочка) содержимого поля.
Вопросительный знак в интерфейсе LibreOffice применяется для обозначения строго одного символа.
Заполним второе условие. Выбираем поле – Государства точка Столица, условие – соответствует выражению. Теперь нужно указать значение. По условию сказано, что название столицы начинается на букву А, значит мы должны указать сначала А, а потом звёздочка.
Третье условие: государственная религия ислам.
Выбираем поле – Религия точка религия, условие – равно, значение – ислам. Теперь нажимаем Дальше.
Четвёртый и седьмой шаги по созданию запроса можно пропустить. Нажимаем два раза Дальше. В конце – Готово.
В результате мы получим таблицу, состоящую из одной строки. В ней отображены данные о стране, в которой государственный язык не французский, название столицы начинается на букву А и государственная религия ислам.
Пришло время подвести итоги сегодняшнего урока.
Сегодня на уроке мы с вами учились выполнять сложные запросы к базе данных «Государства».
При формировании запросов мы использовали знаки отношения: равно, больше, меньше, больше либо равно, меньше либо равно, не равно.
Выяснили, что LIKE – это команда LibreOffice для поиска содержимого поля, которое либо начинается на нужное выражение, либо нужное выражение встречается внутри поля, либо в конце поля.