Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Практическая работа с базами данных в OpenOffice.org Base. Учебное пособие

.pdf
Скачиваний:
0
Добавлен:
07.09.2026
Размер:
1 Мб
Скачать
31
Запрос в отличие от фильтра можно сохранить, задав ему имя для даль­нейшего использования. Если вам неоднократно приходится обращаться к ото­бранным данным, рекомендуется составлять запрос. Запрос можно использовать как источник данных для форм и отчетов.
5.1. Создание запросов по образцу
Для создания запросов в современных СУБД предназначены два языка:
QBE (Query By Example) - запрос по образцу;
SQL (Structured Query Language) - структурированный язык запросов.
Наиболее просто и наглядно запросы создаются с помощью языка QBE. Запросы на этом языке организуются путем интерактивного заполнения специ­альных запросных форм. Создание запросов с помощью языка SQL требует программирования запроса с помощью операторов и функций данного языка. В данной работе рассматриваются только QBE–запросы.
Для создания QBE–запроса необходимо в главном окне БД выбрать вклад­ку Запросы и соответствующую ей задачу Создать запрос в режиме дизайна. После этого появятся два окна: окно построителя запросов и окно добавления таблиц (рис. 23).
Рис. 23. Окна построителя запросов и добавления таблиц
32
Далее необходимо в окне добавления таблиц выбрать и добавить в верх­нюю часть окна построителя запросов нужные таблицы, после чего окно добав­ления таблиц закрывается. Связи между таблицами берутся из схемы данных, со­зданной ранее, и устанавливаются автоматически.
Нижняя часть построителя запросов состоит из ряда строк (рис. 23), назна­чение которых следующее:
Поле - здесь располагается название отобранного для запроса поля;
Псевдоним - альтернативное название поля для ответной таблицы;
Таблица - название таблицы, из которой берется поле;
Сортировка - для указания того, нужна ли сортировка по полю, и если
нужна, то какая; при выполнении щелчка на этой строке появляется поле спис­ка с перечнем способов сортировки;
Видимый - флажок, указывающий на то, будет ли показан данный столбец в ответной форме или он введен для иных целей (участвует только в выражении отбора записей и т.п.);
Функция - для выбора групповой операции;
Критерий - для задания условия отбора;
Или - строки для создания сложного условия отбора.
Строки Критерий и ИЛИ предназначены для ввода условий (критериев) отбора в запрос. Условия отбора указываются для одного или нескольких полей и представляют собой логическое выражение.
В логических выражениях используются логические операторы AND (―И‖), OR (―ИЛИ‖) и NOT (―НЕ‖), операторы отношений (<, <=, >, >=, =, < >), команды OOo.
Логические операторы AND и OR в QBE–запросах в отличие от языка SQL в условиях отбора явно не указываются. Принято следующее соглашение: условия, находящиеся в одной строке, связываются логическим оператором
AND (условия выполняются одновременно), а условия в разных строках озна-
33
чают выполнение логического оператора OR (выполняется хотя бы одно из условий).
Операторы отношений сравнивают содержимое поля с указанным условием.
Команды OOo, используемые в условиях отбора:
LIKE x – поле данных содержит указанное выражение x; выражение x
может быть текстовым и содержать символы подстановки ‗?‘ и ‗*‘;
• NOT LIKE x – поле данных не содержит указанное выражение x; вы-
ражение x может быть текстовым и содержать символы подстановки ‗?‘ и ‗*‘;
• BETWEEN x AND y – поле данных содержит значение, находящееся
в интервале [x, y];
NOT BETWEEN x AND y – поле данных не содержит значения в ин-
тервале [x, y];
• IS EMPTY – поле данных пустое (NULL);
• IS NOT EMPTY – поле данных не пустое;
• IN (a; b; c…) – поле данных содержит одно из указанных выражений a, b, c,…, которые могут быть числами или символами; результат запроса опре- деляется оператором OR;
• NOT IN (a; b; c…) – поле данных не содержит указанных выражений a,b,c,…;
• = TRUE – поле данных имеет значение TRUE (ИСТИНА);
• = FALSE – поле данных имеет значение FALSE (ЛОЖЬ).
5.2. Примеры построения запросов
Рассмотрим ряд примеров, поясняющих технологию построения запро-
сов.
Пример 1. Создать запрос, формирующий список студентов, фамилии которых начинаются на ―C‖ и родившихся в 1991 – 1992 годах. В результате за­проса вывести таблицу, содержащую поля ФИО, Группа, Дата рождения. Условие отбора совпадает с условием поиска в фильтре по умолчанию для ана-
34
логичной задачи, см. рис. 21: ФИО=С* AND Дата рождения >= 01.01.1991 AND Дата рождения <= 31.12.1992. Сравнить задание условия отбора в запро-
се с условием поиска в фильтре по умолчанию.
1. В главном окне БД Сессия на вкладке Запросы выберите задачу Со-
здать запрос в режиме дизайна. Откроются окна построителя запросов и до­бавления таблиц (рис. 23).
2. В окне добавления таблицы выберите из списка таблицу Студент и
нажмите кнопку «Добавить». Закройте окно добавления таблицы.
3. В таблице Студент дважды щелкните по следующим полям в указан-
ной последовательности: ФИО, Группа, Дата рождения, Дата рождения.
4. Снимите в строке Видимый флажок для последнего поля Дата рожде-
ния (флажок указывает, будет ли показан данный столбец в ответной форме).
5. Введите в строке Критерий условие отбора. Напомним, что апострофы
и символы # подставляются автоматически при нажатии клавиши «Enter» или щелчке по другой ячейке. Результаты проделанных действий представлены на рис. 24.
Рис. 24. Запросная форма примера 1
35
6. Просмотрите запрос, нажав клавишу «F4» (рис. 25).
Рис. 25. Просмотр результатов выполнения запроса
Повторное нажатие клавиши «F4» восстанавливает запросную форму для возможных ее исправлений. Проверьте.
7. Закройте окно построителя запросов и в появившемся окне сохранения
запроса задайте ему имя Пример1 для дальнейшего использования.
8. Если вы хотите убедиться, правильно ли расставлены в условии отбора
логические операторы AND (―И‖) или OR (―ИЛИ‖), перейдите в режим SQL. Для этого щелкните правой кнопкой мыши по значку запроса Пример1 и выбе­рите в контекстном меню команду Редактировать в режиме SQL. Откроется окно построителя запросов с условием отбора на языке SQL (рис. 26). Просмот­рите условие WHERE. Закройте окно построителя запросов.
Рис. 26. Условие отбора на языке SQL
9. Просмотреть запрос можно и из главного окна БД Сессия. Дважды
щелкните по значку запроса Пример1 и просмотрите ответную таблицу. При изменении или добавлении записей в таблице Студент ответная таблица также будет изменена. Закройте окно Представление данных таблицы.
36
10. Щелкните правой кнопкой мыши по значку запроса Пример1 и выбе­рите в контекстном меню команду Изменить. Откроется окно построителя за­просов, в котором можно произвести необходимые изменения.
Рассмотрим другой вариант задания условия отбора для рассматриваемой
задачи.
11. Удалите правый столбец Дата рождения, для чего выделите его щелчком по серому полю над заголовком и нажмите клавишу «Delete».
12. Введите новое условие отбора BETWEEN 01.01.1992 AND 31.12.1992. Результаты проделанных действий представлены на рис. 27.
13. Просмотрите запрос, нажав клавишу «F4». Результаты просмотра за­проса совпадают с данными рис. 25.
Рис. 27. Новое условие отбора
14. Сохраните запрос под другим именем, для чего выполните команду Файл > Сохранить как и задайте запросу имя Пример1_1.
15. Закройте окно построителя запросов.
16. Просмотрите условие WHERE в режиме SQL. Закройте окно построи­теля запросов.
Пример 2. Создать запрос, формирующий список студентов–мужчин,
родившихся в 1990 г. или 1993 г. В результате запроса вывести таблицу, содер­жащую поля ФИО, Пол, Дата рождения и отсортированную по полю Дата
рождения (например, по возрастанию). Условие отбора: (Пол=М AND Дата
37
рождения >= 01.01.1990 AND Дата рождения <= 31.12.1990) OR (Пол=М AND Дата рождения >= 01.01.1993 AND Дата рождения <= 31.12.1993).
1. В главном окне БД Сессия на вкладке Запросы выберите задачу Со­здать запрос в режиме дизайна. Откроются окна построителя запросов и до-
бавления таблиц (рис. 23).
2. В окне добавления таблицы выберите из списка таблицу Студент и нажмите кнопку «Добавить». Закройте окно добавления таблицы.
3. В таблице Студент дважды щелкните по следующим полям в указан­ной последовательности: ФИО, Пол, Дата рождения, Дата рождения.
4. Снимите в строке Видимый флажок для последнего поля Дата рождения.
5. Для первого поля Дата рождения установите сортировку по возраста- нию. Для этого щелкните в ячейке на пересечении строки Сортировка и столб­ца Дата рождения и выберите в раскрывающемся списке сортировку по воз­растанию.
6. Введите в строках Критерий и ИЛИ условие отбора. Просмотрите за­прос, нажав клавишу «F4». Результаты проделанных действий представлены на рис. 28.
Рис. 28. Условие отбора и результат запроса примера 2
38
7. Закройте окно построителя запросов и в появившемся окне сохранения запроса задайте ему имя Пример2.
8. Просмотрите условие WHERE в режиме SQL.
9. Закройте окно построителя запросов.
Пример 3. Создать запрос, формирующий список студентов группы 112,
получивших на экзамене неудовлетворительные оценки (балл < 53) по матема­тике или информатике. В результате запроса вывести таблицу, содержащую по­ля ФИО, Группа, Дисциплина, Балл и отсортированную по полю ФИО (по воз­растанию). Условие отбора: (Группа=112 AND Математика < 53) OR (Груп-
па=112 AND Информатика < 53).
1. В главном окне БД Сессия на вкладке Запросы выберите задачу Со­здать запрос в режиме дизайна. Откроются окна построителя запросов и до-
бавления таблиц (см. рис. 23).
2. Данный запрос строится на основе трех таблиц: Студент, Экзамен и Дисциплина. В окне добавления таблицы выбирайте последовательно из списка таблицы Студент, Экзамен и Дисциплина, нажимая каждый раз кнопку «Доба­вить» (рис. 29). Связи между таблицами берутся из схемы данных, созданной ранее, и устанавливаются автоматически. Закройте окно добавления таблицы.
3. Добавьте нужные поля в запросную форму:
• из таблицы Студент – поля ФИО и Группа;
• из таблицы Дисциплина – поле Дисциплина;
• из таблицы Экзамен – поле Балл.
4. Для поля ФИО установите сортировку по возрастанию.
5. Введите в строках Критерий и ИЛИ условие отбора. Результаты проде­ланных действий представлены на рис. 29.
6. Просмотрите запрос, нажав клавишу «F4». Результат выполнения за­проса сравните с рис. 30.
39
Рис. 29. Запросная форма примера 3
Рис. 30. Результат запроса примера 3
7. Закройте окно построителя запросов и в появившемся окне сохранения запроса задайте ему имя Пример3.
Пример 4. Создайте запрос с параметрами, формирующий сведения о
баллах студентов заданной группы по заданной дисциплине. В результате за­проса вывести таблицу, содержащую поля ФИО, Группа, Балл, Дисциплина и отсортированную по полю Балл (по убыванию). Условие отбора: Номер группы
AND Название дисциплины.
40
Запросы, которые представляют собой варианты базового запроса и не-
значительно отличаются друг от друга, называются параметрическими. Поля строк Критерий и ИЛИ заполняются не конкретным условием отбора, а обра­щением к пользователю для ввода параметров условия отбора. Во время вы­полнения запроса это обращение будет адресовано пользователю, который вве­дет параметры условия отбора. На основании введенных параметров (с учетом других компонент, заданных в строках Критерий и ИЛИ) будет осуществляться отбор записей. Обращение необходимо начинать с двоеточия, например
:номер_группы.
1. В главном окне БД Сессия на вкладке Запросы выберите задачу Со­здать запрос в режиме дизайна. Откроются окна построителя запросов и до-
бавления таблиц (рис. 23).
2. Данный запрос строится на основе трех таблиц: Студент, Экзамен и Дисциплина. В окне добавления таблицы выбирайте последовательно из списка таблицы Студент, Экзамен и Дисциплина, нажимая каждый раз кнопку «Доба­вить» (рис. 31). Закройте окно добавления таблицы.
3. Добавьте нужные поля в запросную форму: из таблицы Студент – по­ля ФИО и Группа, из таблицы Экзамен – поле Балл, из таблицы Дисциплина – поле Дисциплина.
4. Для поля Балл установите сортировку по убыванию.
5. Введите в строке Критерий для поля Группа обращение :номер_группы, а для поля Дисциплина обращение :название_дисциплины. Между словами нельзя использовать пробелы, для их связки можно ставить знак подчеркивания. Результаты проделанных действий представлены на рис. 31.
6. Нажмите клавишу «F4» для просмотра запроса. Откроется окно для ввода параметров по запросу (рис. 32).
7. При выделенном параметре название_дисциплины введите в поле Зна- чение текст Физика и нажмите кнопку «Следующий». Указатель параметра пе­рейдет на строку номер_группы. Активизируйте щелчком поле Значение и вве-
Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]