
- •Формирование запроса на выборку в реляционной субд Access
- •Теоретическое введение
- •Создание запроса на выборку с помощью Мастера
- •Создание запроса на выборку с помощью Конструктора
- •Параметрические запросы
- •Примеры условий запроса
- •Условия для полей с типами данных "Текстовый", "Поле memo"
- •Условия для полей типа "Числовой", "Денежный" и "Счетчик"
- •Условия для полей с типом данных "Дата/время"
- •Выполнение задания
Параметрические запросы
Запросы, представляющие собой варианты базового запроса и незначительно отличающиеся друг от друга, называются параметрическими. В параметрическом запросе указывается критерий, который может изменяться по заказу пользователя.
Последовательность создания параметрического запроса следующая:
Создать запрос в режиме конструктора или открыть существующий запрос в режиме конструктора, например «Образец запроса в режиме Конструктор».
В Бланк запроса в строке Условия отбора ввести условие отбора в виде приглашения в квадратных скобках, например [Введите фамилию]
Закрыть окно Запрос на выборку, на вопрос о сохранении изменения ответить – Да. Вернуться в окно базы данных, где созданный запрос будет выделен.
Выполнить запрос, щелкнув по кнопке: Открыть. В появившемся на экране окне диалога «Введите значение параметра» надо ввести, например фамилию студента, информацию об успеваемости которого необходимо получить, выполнить щелчок по кнопке ОК.
Например, для нашего случая изменим запрос. В условие отбора запишем - [Введите адрес покупателя] . При выполнении запрос будет выглядеть так
Примеры условий запроса
В таблице ниже представлены примеры различных условий (параметров) отбора данных и описано их применение.
УСЛОВИЕ |
ОПИСАНИЕ |
>25 and <50 |
Это условие применимо к полю типа полю типа «Числовой», например, к полю «Цена» или «НаСкладе». При использовании этого условия в результаты запроса включаются только те записи, в которых поле «Цена» или «НаСкладе» содержитзначение больше 25 и меньше 50. |
DateDiff ("yyyy", [ДеньРождения], Date()) > 30 |
Это условие применимо к полям типа «Дата/Время», например, к полю «ДатаРождения». В результаты запроса включаются только те записи, в которых количество лет, прошедшее с даты рождения сотрудника до текущей даты, превышает 30. |
Is Null |
Это условие можно применить к полю любого типа, чтобы отобразить записи с нулевым значением поля. |
Для разных типов данных применяются различные встроенные операторы поиска значений. Ниже приведены таблицы с описанием различных условий и их интерпретация, используйте 2-3 оператора в запросе (или комбинацию операторов в одном поле) для написания параметрических запросов в вашей базе данных.
Тип данных Текстовый или МЕМО
Тип данных Числовой, Финансовый
Тип данных Дата/Время
Условия для полей с типами данных "Текстовый", "Поле memo"
ЗАПИСИ |
УСЛОВИЕ |
РЕЗУЛЬТАТ ЗАПРОСА |
Точно соответствуют определенному значению, например "Китай" |
"Китай" |
Записи, в которых поле "Страна" содержит значение "Китай". |
Не соответствуют определенному значению, например "Мексика" |
Not "Мексика" |
Записи, в которых значением поля "Страна" не является "Мексика". |
Начинаются с заданной строки символов, например "С" |
Like С* |
Записи, в которых название страны начинается с буквы "С", например Словакия, США и т. д. ПРИМЕЧАНИЕ. Используемая в выражении звездочка (*) заменяет любую строку знаков. Список подстановочных знаков см. в статье Справочные сведения о подстановочных знаках в приложении Access. |
Не начинаются с заданной строки символов, например "С" |
Not Like С* |
Записи, в которых названия стран не начинаются с буквы "С". |
Содержат заданную строку, например "Корея" |
Like "*Корея*" |
Записи с названиями стран, которые содержат слово "Корея". |
Не содержат заданную строку, например "Корея" |
Not Like "*Корея*" |
Записи с названиями стран, которые не содержат строку "Корея". |
Заканчиваются заданной строкой, например "ина" |
Like "*ина" |
Записи, в которых названия стран заканчиваются на "ина", например "Украина" или "Аргентина". |
Не заканчиваются заданной строкой, например "ина" |
Not Like "*ина" |
Записи, в которых названия стран не заканчиваются на "ина", например "Украина" или "Аргентина". |
Содержат пустые значения (или значения отсутствует) |
Is Null |
Записи, в которых это поле не содержит значения. |
Не содержат пустых значений |
Is Not Null |
Записи, в которых данное поле содержит ненулевое значение. |
Содержат пустую строку |
"" (прямые кавычки) |
Записи, в которых поле имеет пустое (но не нулевое) значение. Например, записи о продажах для другого отдела могут содержать пустое значение в поле «Страна». |
Не содержат пустую строку |
Not "" |
Записи, в которых поле "Страна" имеет непустое значение. |
Содержит нулевые значения или пустые строки |
"" Or Is Null |
Записи, в которых значение в поле отсутствует или пусто. |
Ненулевые и непустые |
Is Not Null And Not "" |
Записи, в которых поле "Страна" имеет непустое и ненулевое значение. |
При сортировке в алфавитном порядке следуют за определенным значением, например "Мексика" |
>= "Мексика" |
Записи для всех стран, начиная с Мексики и вплоть до конца алфавита. |
Входят в определенный диапазон, например от А до Г |
Like "[А-Д]*" |
Записи, в которых название страны начинается с одной из букв от "А" до "Г". |
Совпадают с одним из двух значений, например "Словакия" или "США" |
"Словакия" Or "США" |
Записи для США и Словакии. |
Содержат одно из значений, указанных в списке |
In("Франция", "Китай", "Германия", "Япония") |
Записи для всех стран, упомянутых в списке. |
Содержат определенные знаки в заданном месте значения поля |
Right([Страна], 1) = "а" |
Все записи, в которых названия стран оканчиваются на букву "а". |
Соответствуют заданной длине |
Len([Страна]) > 10 |
Записи, в которых длина названия страны превышает 10 знаков. |
Соответствуют заданному шаблону |
Like "Лив??" |
Записи для стран, таких как Ливия и Ливан, названия которых включают пять знаков, первые три из которых — "Лив". ПРИМЕЧАНИЕ. Используемые в выражении знаки ? и _ являются подстановочными и заменяют один знак. Знак _ нельзя использовать в одном выражении со знаком ?или в одном выражении с подстановочным знаком *. Можно использовать подстановочный знак _ в выражении, которое содержит знак %. |