Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
УЧЕБНОЕ ПОСОБИЕ по БД моя версия.doc
Скачиваний:
29
Добавлен:
27.09.2019
Размер:
4.22 Mб
Скачать

Условия отбора записей

Условия отбора записей могут задаваться для одного или нескольких полей в строке «Условие отбора» бланка запроса. Условием отбора является выражение, которое состоит из, операторов сравнения и операндов.

В качестве операндов могут использоваться: литералы, константы, идентификаторы (ссылки).

Л итералами являются конкретные значения, воспринимаемые Access так, как они записаны. В качестве литералов могут быть использованы числа, строковые значения, даты. Например, если в запрос, созданный по таблице «Студенты» в поле «Фамилия» ввести, например, «Андреев», то результатом запроса будут выбранные сведения о студентах с такой фамилией. (Рис. 2.27).

Рис. 2.27 Применение литерал в запросе на выборку

Константами являются не изменяющиеся значения, которые определены в Access, например, Истина (True), Ложь (False), Пустые записи (Null), Не пустые записи (Not null).

Е сли, например, нужно получить список студентов, не имеющих домашнего телефона, то в условиях отбора в поле «Телефон» надо ввести условие Null (Рис. 2.28). В этом случае в запрос войдут все студенты, для которых поле «Телефон» пустое.

Рис. 2.28 Применение константы «Null» в конструкторе запросов

Е сли же нужен список студентов, имеющих телефон, то в соответствующем поле надо ввести Not null (Рис. 2.29). В этом случае в запрос войдут все студенты, для которых поле «Телефон» не пустое.

Рис. 2.29 Применение константы «Not null» в конструкторе запросов

Идентификатор представляет собой ссылку на значение поля, элемента управления или свойства. Идентификаторами могут быть имена полей таблиц, форм, отчетов и т.д. Они должны заключаться в квадратные скобки. Как правило, Access производит автоматическую подстановку скобок. Во многих случаях ссылка на конкретное значение должна указывать точное его местоположение в иерархии объектов базы данных, начиная с объекта верхнего уровня. Если необходимо указать ссылку на поле в конкретной таблице, форме, отчете, то перед именем поля ставится имя таблицы, формы, отчета, также заключенное в квадратные скобки и отделенное от имени поля восклицательным знаком. Например, ссылка на поле в таблице примет ВИД: [Имя таблицы] ! [Имя поля].

О ператорами сравнения и логическими операторами, использование которых допускается в условиях отбора, являются: =, <, >, о, <=, >=, Between, In , Like , And, Or, Not. Они определяют операцию над одним или несколькими операндами. Если выражение в условии отбора не содержит оператора, то по умолчанию используется оператор «равно». Одно и то же условие может быть задано с помощью разных операторов. Условия отбора, заданные для разных полей в одной строке, связываются по умолчанию с помощью логической операции "И" (т.е. выполняются одновременно) (Рис. 2.30), заданные в разных строках — с помощью логической операции "ИЛИ" (т.е. выполняется хотя бы одно из них) (Рис. 2.31). Например: для выбора студентов, получивших оценку «5» можно создать запрос, в котором условия выполняются одновременно:

Рис. 2.30 Условия отбора для двух полей, связанные логической операцией «И» (выполняются одновременно)

Для выбора «двоечников» (выполняется хотя бы одно из условий):

Р ис. 2.31 Условия отбора для трех полей, связанные логической операцией «ИЛИ» (выполняется хотя бы одно из них)

Можно так же использовать комбинацию операторов.

Оператор Between позволяет задать интервал для числового значения и да­ты. Например: для таблицы «Товары» надо выбрать те, цена которых находится в пределах от 100 до 300 руб.

Рис. 2.32 Применение оператора Between … and … для создания условий отбора

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

In("Математики";"Информатики";"Истории")

Оператор Like позволяет работать с образцами, использующими символы шаблона при поиске в текстовых полях. Допускается использование операторов шаблона — звездочка (*) и вопросительный знак (?).

Символ «звездочка» - означает произвольное количество любых символов. Например: если в поле «Фамилия» поставить Like И*, то в будут отобраны только фамилии, начинающиеся с буквы «И» (Рис. 2.33). Если ввести условие Like *ов, то будут отобраны все фамилии, заканчивающиеся на «ов». При записи в поле «Телефон» условия Like 3*, будут отобраны телефоны, начинающиеся с цифры 3.

Символ «?» означает один произвольный символ, или его отсутствие. Например: если в поле «Город» указано условие «Like М?????», то будут отобраны города, названия которых начинаются с буквы «М» и имеют не более 6 символов. (Подходит, например Москва или Минск, не подходит – Могилев).

С ам оператор можно не указывать, ограничиваясь только шаблоны. (Оператор будет дописан автоматически).

Рис. 2.33 Применение оператора «Like» для создания условий отбора

Функции даты и времени — служат для проведения операций со значениями даты и времени. Например, функция DateDiff О вычисляет промежуток между двумя датами, а функция Date() возвращает значение текущей даты, Time() – текущего времени.

После ввода выражения в бланк и нажатия клавиши <Enter> Access выполняет синтаксический анализ выражения.

Параметрические запросы

Если в поле «Курс» таблицы «Студенты» ввести номер, то при выполнении запроса появится список студентов, данного курса. Однако, при решении практических задач значительно удобнее вводить значение в диалоговом окне в процессе выполнения запроса. Для того чтобы выводилось диалоговое окно, обеспечивающее ввод конкретного значения в условия отбора, нужно определить параметр запроса.

Имя параметра запроса может задаваться непосредственно в строке «Условия отбора» в квадратных скобках (Рис 2.34).

Рис. 2.34 Создания параметрического запроса

При выполнении такого запроса появится окно, в которое надо будет ввести номер курса. В зависимости от введенного номера в запрос будут отобраны сведения о студентах нужного в данный момент курса. (Если же номер курса вводить непосредственно в графу «Условие отбора», то пришлось бы создавать запросы отдельно для каждого курса).

В запросе может быть определено несколько параметров (Рис. 2.35). При этом порядок их ввода через диалоговые окна определяется порядком расположения полей с параметрами в бланке запроса. (Начиная с того, что записано левее).

Рис. 2.35 Создания параметрического запроса с двумя параметрами

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

Чтобы иметь возможность ввести несколько значений в условия отбора одного поля, можно в условии отбора этого поля определить несколько параметров. Например, для отбора записей по двум курсам в условии отбора можно записать два параметра, связанных логической операцией or: [Введите курс] OR [Еще один курс].