
- •Лабораторная работа №6 запросы
- •Простой запрос
- •Конструктор запросов
- •Построитель выражений
- •[Введите название страны]
- •Вопросы
- •Задание
- •Перекрестный запрос
- •Мастер повторяющихся записей
- •Редактирование данных при помощи запросов
- •Запрос на добавление
- •Запрос на удаление
- •Запрос на обновление
- •[Стипендия]*1,25.
- •Запрос на создание таблицы
- •Создание вычисляемых полей
- •[Штраф]![Стипендия]-[Штраф]![Пропуски]*10.
- •Вопросы
Построитель выражений
Для того чтобы сформировать условие отбора, можно использовать Построитель выражений. Правой кнопкой мыши щелкните в строке Условие отбора на бланке запроса, выберите строку Построить.
То же
самое можно сделать, нажав кнопку
на панели инструментов. Раскроется
окно
Окно построителя имеет четыре области со своими полосами прокрутки. В верхней области располагается создаваемое выражение. Три нижние используются для выбора элементов. Левая область содержит список всех источников данных для запроса. Ими могут быть объекты БД Access: таблицы, запросы, формы и т.д. Кроме того, в левый список включены папки, содержащие функции, константы и операторы, которые могут быть использованы в выражении. Средний список служит для показа элементов, входящих в выбранный объект из левого списка. Например, если у Вас в левой области указано имя таблицы магазины Запрос, то средний список будет содержать имена ее полей. Правый список служит для выбора самых примитивных объектов, для того чтобы перенести имя объекта в выражение, нужно два раза щелкнуть имя объекта в одном из нижних списков. Кнопка Назад позволяет отменить ввод данных в выражение. Текст выражения можно редактировать и обычным способом.
При составлении выражений необходимо знать некоторые правила. Выражение всегда имеет логический тип (то есть в любом случае его значение должно быть Да или Нет). Имена объектов и полей заключаются в квадратные скобки, символьные скобки — в кавычки, даты — в знаки #. Имя объекта базы данных отделяется от имени поля восклицательным знаком. Например: Магазины!директор.
Рассмотрим теперь на примерах, зачем нужен построитель выражений. Допустим, Вы хотите вывести на экран всех директоров, фамилии которых начинаются с буквы "П". Для этого вызовите построитель из поля Директор, в верхнем поле напишите П*. Нажмите кнопку ОК. Перейдите в режим таблицы. Символ * обозначает любую последовательность символов.
Допустим, Вы хотите увидеть на экране сведения про всех директоров, кроме Иванова. Вы вызываете на экран Построитель выражений, щелкаете по кнопке Not, пишете Иванов, нажимаете на ОК, затем переходите в режим таблицы. На экране — нужные сведения.
Выведите на экран сведения про всех директоров, кроме Петрова. Покажите преподавателю.
Какие еще функции можно использовать?
Between And — заменяет знаки "больше или равно*' и "меньше или равно" . Например, Between 44 And 67 эквивалентно условию >=44 And <=67.
Оператор In позволяет использовать списки значений. Например, выражение In ("Петров";"Сидоров") позволяет отобрать записи с указанными фамилиями. Попробуйте вывести на экран записи, касающиеся Иванова и Сидорова.
Выражение Not Null используется для отбора непустых записей в указанном поле.
Выражение Is Null используется для отбора пустых записей в указанном поле.
\ — Обратная косая черта обозначает деление целых частей делимого и делителя. Результат округляется до целого. Например, 5\2=2.
^ — обозначает операцию возведения в степень. Например, 32=9.
Mod — Операция получения остатка от деления целых частей аргументов.
& — Знак используется для "сложения" данных символьного типа. Дня соединения строк можно использовать и плюс. Например, следующие три выражения эквивалентны:
"Петров "
"Петр "&"ов"
"Петр"+"ов"
Оператор Like используется для создания масок при определении строк с неизвестными символами и требует дополнительных специальных символов:
* Любая последовательность символов. Например, П* — Петров, Попов, Пол и т.д.. В слове может быть любое количество любых символов, но первая буква слова непременно будет П.
? любой единичный символ. Например, П?л — это Пол или Пел, или Пул, но в слове ровно три буквы и две из них известны.
# любая неизвестная цифра, например, 12#45 — в этой последовательности цифр ровно одна цифра неизвестна.
[] квадратные скобки подразумевают, что перед выполнением запроса должно быть активизировано окно диалога с приглашением ввести параметр, являющийся критерием отбора. Выражение в скобках выводится при этом в окне в качестве сообщения подсказки.
В поле построителя выражений введете следующий текст: [Директор] Like "П*"
нажмите, кнопку ОК, перейдите в режим таблицы. У Вас должно получиться
Выведем на экран сведения о директорах, в фамилии которых есть буква "р". Для этого в построителе выражений напишите [Директор] Like "*р*", далее все проделайте самостоятельно. Результат покажите преподавателю.
Операторы "меньше" и "больше" могут использоваться не только с числовыми данными, но и с датами или текстом. Применительно к текстовым строкам они позволяют отбирать записи, предшествующие указанной строке или следующие за ней. В этих случаях учитывается алфавитный порядок.
В поле построителя выражений введите [Директор]>"Иванов". Доделайте самостоятельно, результат покажите преподавателю.
На самом деле, результат запроса сильно зависит от связей между таблицами, но об этом мы поговорим позже.
Войдите во вкладку Запросы. Щелкните по кнопке Создать, выберите режим Конструктор. Откроется окно
Выберите в этом окне Клиенты. Нажмите на кнопку Добавить. Раскроется окно Конструктора запросов, в верхнем окне которого будет таблица Клиенты. Нажмите кнопку Закрыть.
Выведем на экран только поля Название, Должность, Город, Страна, Телефон. Это можно сделать тремя способами:
1. Щелкните в нижней части бланка запроса в строке Поле, появится кнопка со стрелкой. Щелкните по ней, в раскрывшемся списке выберите Название, щелкните. При этом в строке Имя таблицы автоматически появится название таблицы (в нашем случае Клиенты) и в строке Вывод на экран появится флажок.
2. Введем вторым способом второе поле. Выберите в списке в верхней части поля Должность, нажмите левой кнопкой мыши и, не отпуская, перетащите в нужное поле в нижнюю часть бланка. Отпустите кнопку.
3. Выберите в списке в верхней части Город, дважды щелкните по нему.
Самостоятельно введите Страну и Телефон. Запустите запрос на выполнение.
Допустим, Вы решили убрать поле Телефон с экрана. Перейдите снова в режим конструктора запросов, отключите флажок в строке Вывод на экран в поле Телефон. Снова запустите запрос.
Сейчас проделаем ту работу, которую Вы делали с таблицей Клиенты в работе №3. Все условия точно в таком же виде надо писать либо в строке Условие отбора в нижней части окна бланка запроса, либо в Построителе выражений. Проделайте самостоятельно, результат покажите.
Отфильтруйте в таблице Клиенты всех из Германии; из Германии или Мексики, из Германии или Мексики или Буэнос-Айреса (город).
Можно вывести на экран те записи из таблицы, в которых название страны начинается с буквы Г. Делается это с помощью подстановочного символа *, про который Вы уже знаете.
На экран будут выведены только записи, касающиеся стран, названия которых начинаются с этой буквы.
Выведите на экран все записи из таблицы Клиенты, в которых название в поле Город начинаются с букв Б, В, Г, Д. Для этого в строке Условие отбора напишите оператор
Like"[Б-Д]*"
Запустите запрос на исполнение. Напишите теперь оператор Like "[БД]*", запустите запрос. Что изменилось?
Запишите там же >Б AND <Д. Что получилось? Возможно, этот оператор проще писать в построителе выражений, попробуйте.
Так же, как в фильтрах, в запросах есть возможность конструкции ИЛИ. Например, если в строке Условие отбора в поле Город Вы напишите Г*, а ниже, в строке или В*, то на экран выйдут все записи, в которых названия городов начинаются с букв Г и В. Можно то же самое сделать в одной строке Условие отбора, если написать оператор Г* OR В*. Проделайте это.
Наконец, есть аналог команде Исключить выделенное. Если в Поле Страна в строке Условие отбора Вы напишите Not Г*, то на экран выведутся все страны, кроме тех, название которых начинается с этой буквы. Можно написать также <>Германия. Попробуйте.
Иногда возникает необходимость сделать свой запрос таким, чтобы с ним могли работать люди, совсем не знающие Access. Если в строке Условие отбора ввести следующую запись: