Запрос на выборку с условием access

В большинстве современных СУБД имеется свой вариант QBE, незначительно отличающийся от первого описания QBE, предложенного в конце 70-х годов ХХ в. Рассмотрим некоторые возможности QBE СУБД MS Access.

Используем для примера таблицу БД, которая относится к торговле (рис. 3.10). Имя таблицы TYPE (типы товаров). Она имеет столбцы: товар – названия товара; цвет – его цвет; стоимость – стоимость товара.

Выборка данных может осуществляться по следующим вариантам:

1. Простая выборка, например: «Вывести товары зеленого цвета из таблицы TYPE».

2. Простая выборка с упорядочиванием.

3. Выборка с квалификаторами (условиями). Выбор записей из исходной таблицы может быть основан на: а) точном совпадении; б) частичном совпадении; в) сравнении.

Запросы позволяют получать результирующие таблицы, поля которых удовлетворяют определённым условиям (критериям). Эти условия задают в бланке запроса в строке Условия отбора. Условиями отбора являются логические выражения, состоящие из операторов и операндов. Используются операторы сравнения =, , <> (не равно), Between, In, Like и и логические операторы And, Or, Not. Допускается применять шаблоны с подстановочными символами.

Рис. 3.10. Пример таблицы БД

Если точное значение не известно или необходимо вводить значение не полностью, то удобно использовать шаблон (образец) с подстановочными символами (знаками). Примеры подстановочных символов:

* – соответствует любому количеству любых символов. Пример: 77* – для нахождения всех телефонов с номерами, начинающимися на 77.

? – соответствует одному текстовому символу. Пример: 77-4?-0? – для нахождения всех телефонов с номерами, содержащими четыре указанные цифры.

Шаблоны используются совместно с оператором Like. Этот оператор позволяет создавать шаблоны, использующие подстановочные символы при поиске в текстовых полях. Например, фамилия сотрудника известна неточно. Это может быть Петров, Петровский, Пеотровский и т.п. Тогда следует использовать для выборки в строке Условие запись Like "Пе*".

Известно, что имя состоит из 4-х букв. Тогда подойдет запись Like ". ".

Оператор Between задаёт интервал значений. Например, Between 1 And 5

(указанные края интервалов в выборку включаются).

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

Логические операции И, ИЛИ могут быть заданы явно в выражении условия с помощью операторов AND и OR. Например, «духи» OR «карандаш».

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

Литералами являются конкретные значения, воспринимаемые системой так, как они записаны. Литералом может быть число, дата, строка. Например, 1146, #31.01.02 #, "Липецк".

Константами являются постоянные значения, которые определены в Access. Например, True, False, Null, Да, Нет.

Идентификаторосуществляет ссылку на поле, элемент управления или свойство. Идентификаторами могут быть имена полей, таблиц, форм, и так далее. Они заключаются в квадратные скобки. Ссылка на конкретное значение должна указывать на его местоположение в иерархии объектов в БД. Ссылка на поле в таблице имеет вид [Имя таблицы]![Имя Поля]. Например, [Сотрудники]![Фамилия].

Условие отбора целесообразно формировать с помощью построителя выражений. Для этого следует открыть окно Построитель выражений,щёлкнув кнопку Построитьна панели инструментов или выбрав команду Построитьв контекстном меню. Предварительно необходимо установить курсор мыши в ячейке ввода условия.

Условие точного несовпадения значений одного из полей. Если в таблице надо найти записи, значения полей которых не удовлетворяют определенному условию, то используется оператор Not. Оператор Not или <> вводится перед сравниваемым значением. Пример. Отобрать все записи таблицы TYPE, за исключением записей «карандаш» в поле Товар. Для этого в бланке запроса в столбце поля Товар в строке Условие отбора вводится Not " карандаш".

Условие неточного совпадения. Выбор записей по условию неточного

совпадения значений можно осуществить, используя оператор Like. Этот оператор позволяет найти требуемые записи, зная лишь приблизительное написание текстовой величины. В операторе Like можно использовать шаблоны с подстановочными символами, что расширяет возможности поиска записей при неточном задании условий. Пример условия отбора: Like “[д-к]*”. Здесь – (минус) соответствует любому символу из диапазона. Диапазон необходимо указывать по возрастанию (д-к, но не к-д).

Выбор записей по диапазону значений. Для задания диапазона значений в окне конструктора запросов используются операторы >, 100.00 AND

Дата добавления: 2015-08-20 ; просмотров: 6987 ; ЗАКАЗАТЬ НАПИСАНИЕ РАБОТЫ

В простейшем случае запрос реализует выбор из одной таблицы нужных полей, записей, соответствующих заданным условиям отбора, и просмотр результатов выполнения запроса.

Конструирование запросов на выборку с условиями отбора

Рассмотрим запросы на выборку в Access на примере получения информации из таблицы ТОВАР базы данных Поставка товаров.

Задача 1. Пусть необходимо выбрать ряд характеристик товара по его наименованию.

  1. Для создания запроса в окне базы данных выберите вкладку ленты — Создание (Create) и в группе Запросы (Queries) нажмите кнопку Конструктор запросов (Query Design). Откроется пустое окно запроса на выборку в режиме конструктора — ЗапросN (QueryN) и диалоговое окно Добавление таблицы (Show Table) (рис. 4.2).
  2. В окне Добавление таблицы (Show Table) выберите таблицу ТОВАР и нажмите кнопку Добавить (Add). Выбранная таблица будет отображена в области схемы данных запроса. Закройте окно Добавление таблицы (Show Table), нажав кнопку Закрыть (Close).

В результате выполненных действий в окне конструктора запросов (рис. 4.1) в верхней панели появится схема данных запроса, которая включает выбранные для данного запроса таблицы. В данном случае одну таблицу ТОВАР. Таблица представлена списком полей. Первая строка в списке полей таблицы, отмеченная звездочкой (*), обозначает все множество полей таблицы. Нижняя панель является бланком запроса, который нужно заполнить.

Кроме того, на ленте появляется и автоматически активизируется новая вкладка Работа с запросами | Конструктор (Query Tools | Design) (на рис. 4.3 представлена на часть этой вкладки), на которой цветом выделен тип созданного запроса — Выборка (Select). Таким образом, по умолчанию всегда создается запрос на выборку. Команды этой вкладки представляют инструментарий для выполнения необходимых действий при создании запроса. Эта вкладка открывается, когда в режиме конструктора создается новый запрос или редактируется существующий.

  1. Для удаления любой таблицы из схемы данных запроса установите на нее курсор мыши и нажмите клавишу . Для добавления ― нажмите кнопку Отобразить таблицу ( Show Table) в группе Настройка запроса (Query Setup) на вкладке Работа с запросами | Конструктор (Query Tools | Design) или выполните команду Добавить таблицу (Show Table) в контекстном меню, вызываемом на схеме данных запроса.
  2. В окне конструктора (рис. 4.4) последовательно перетащите из списка полей таблицы ТОВАР поля НАИМ_ТОВ, ЦЕНА, НАЛИЧИЕ_ТОВ в столбцы бланка запроса в строку Поле (Field).
  3. Для включения нужных полей из таблицы в соответствующие столбцы запроса можно воспользоваться следующими приемами:
    • в первой строке бланка запроса Поле (Field) щелчком мыши вызвать появление кнопки списка и выбрать из списка нужное поле. Список содержит поля таблиц, представленных в схеме данных запроса;
    • дважды щелкнуть на имени поля таблицы в схеме данных запроса;
    • для включения всех полей таблицы можно перетащить или дважды щелкнуть на символе * (звездочка) в списке полей таблицы в схеме данных запроса.
    • Если вы по ошибке перетащили в бланке запроса ненужное поле, удалите его. Для этого переместите курсор в область маркировки столбца сверху, где он примет вид черной стрелки, направленной вниз, и щелкните кнопкой мыши. Столбец выделится. Нажмите клавишу или выполните команду Удалить столбцы (Delete Columns) в группе Настройка запроса (Query Setup).
    • В строке Вывод на экран (Show) отметьте поля, иначе они не будут включены в таблицу запроса.
    • Запишите в строке Условия отбора (Criteria) наименование товара, как показа-но в бланке запроса на рис. 4.4. Так как выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =. Используемое в выражении текстовое значение вводится в двойных кавычках, которые добавляются автоматически.
    • Выполните запрос, щелкнув на кнопке Выполнить (Run) или на кнопке Режим (View) в группе Результаты (Results). На экране появится окно запроса в режиме таблицы с записью из таблицы ТОВАР, отвечающей заданным условиям отбора.

    1. Если при вводе сложного наименования товара вы допустили неточность, товар не будет найден в таблице. Использование операторов шаблона — звездочка (*) и вопросительный знак (?) (стандарт ANSI-89, используемый для запросов по умолчанию) или знак процента (%) и подчеркивания (_) (ANSI-92, рекомендуемый как стандарт для SQL Server), упрощает поиск нужных строк и позволяет избежать многих ошибок. Введите вместо полного имени товара Корпус* или Корпус%. Выполните запрос. Если в поле наименования товара одно значение начинается со слова «Корпус», результат выполнения запроса будет таким же, как в предыдущем случае. После выполнения запроса введенное выражение будет дополнено оператором Like «Корпус*». Этот оператор позволяет использовать символы шаблона при поиске в текстовых полях.
    2. Если необходимо найти несколько товаров, используйте оператор In. Он позволяет выполнить проверку на равенство любому значению из списка, который задается в круглых скобках. Запишите в строке условий отбора In («Корпуc MiniTower»;»HDD Maxtor 20GB»;»FDD 3,5″). В таблице запроса будет выведено три строки. В операторе In не допускается использование символов шаблона.
    • Сохраните запрос, щелкнув на вкладке Файл (File) и выполнив команду Сохранить (Save). В окне Сохранение (Save As) введите имя запроса Пример1. Заметим, что имя запроса не должно совпадать не только с именами имеющихся запросов, но и с именами таблиц в базе данных.
    • Закройте текущий запрос по команде контекстного меню Закрыть (Close) или нажав кнопку окна запроса Закрыть (Close).
    • Выполните сохраненный запрос, выделив запрос в области навигации и выбрав в контекстном меню команду Открыть (Open).
    • Для редактирования запроса выделите его в области навигации и выполните в контекстном меню команду Конструктор (Design View).
    • Задача 2. Пусть надо выбрать товары, цена которых не более 1000 руб., и НДС не более 10%, а также выбрать товары, цена которых более 2500 руб. Результат должен содержать наименование товара (НАИМ_ТОВ), его цену (ЦЕНА) и НДС (СТАВКА_НДС).

    1. Создайте новый запрос в режиме конструктора, добавьте таблицу ТОВАР. В окне конструктора (рис. 4.5) последовательно перетащите из списка полей таблицы ТОВАР в бланк запроса поля НАИМ_ТОВ, ЦЕНА, СТАВКА_НДС.
    2. Запишите Условия отбора (Criteria), как показано в бланке запроса на рис. 4.5. Между условиями, записанными в одной строке, выполняется логическая операция AND. Между условиями, записанными в разных строках, выполняется логическая операция OR.
    3. Выполните запрос, щелкните на кнопке Выполнить (Run) в группе Результаты (Results). На экране появится окно запроса в режиме таблицы с записями из таблицы ТОВАР, отвечающими заданным условиям отбора.
    4. Сохраните запрос, выполнив соответствующую команду в контекстном меню запроса, которое вызывается при установке курсора на заголовок запроса. Дайте ему имя Пример2.

    Задача 3. Пусть надо выбрать все накладные за заданный период. Результат должен содержать номер накладной (НОМ_НАК), код склада (КОД_СК), дату отгрузки (ДАТА_ОТГР) и общую стоимость отгруженного товара (СУММА_НАКЛ).

    1. Создайте новый запрос в режиме конструктора, добавьте таблицу НАКЛАДНАЯ. В окне конструктора последовательно перетащите из списка полей таблицы НАКЛАДНАЯ в бланк запроса все необходимые поля.
    2. Для поля ДАТА_ОТГР в строке Условия отбора (Criteria) запишите Between #11.01.2008# And #31.03.2008#. Оператор Between задает интервал дат (в ANSI-92 вместо знака # используются одинарные кавычки ‘). Кроме того, этот оператор позволяет задать интервал для числового значения.

    Для закрепления смотрим видеоурок:

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

    1. Простой запрос на выборкупредназначен для извлечения данных из одной или нескольких таблиц и отображения их в режиме таблицы.

    Бланк простого запроса содержит шесть строк:

    o вывод на экран (указывает, будет ли поле присутствовать в динамическом наборе данных);

    o условие отбора (содержит первое условие, ограничивающее набор данных);

    o или (содержит другие условия ограничения данных).
    Разработка простого запроса выполняется в несколько этапов:

    · выбор полей (добавление полей в запрос);

    · установление критериев отбора;

    · задание порядка расположения записей (сортировка).

    Пример такого запроса в режиме конструктора приведен выше на Рис 1.1

    Запрос, показывающий список студентов по номерам зачетной книжки и Фамилиям групп 661 и 662.

    2. Запрос с параметром это запрос, при выполнении которого в диалоговом окне пользователю выдается приглашение ввести данные, например условие для возвращения записей или значение, которое должно содержаться в поле. На рис. 1.2 изображено окно для ввода параметра – номера группы студента. Можно создать запрос, в результате которого выводится приглашение на ввод нескольких данных, например, двух дат. В результате будут возвращены все записи, находящиеся между двумя указанными датами.

    Запросы с параметрами удобно использовать как основу для создания форм и отчетов. Например, при помощи запроса с параметрами можно создать месячный отчет о доходах. При выводе данного отчета на экране появится приглашение ввести месяц, доходы которого интересуют пользователя. После ввода месяца на экране будет представлен требуемый отчет.

    Рис. 1.2. Вид диалогового окна для ввода параметра

    Чтобы создать запрос с параметром, необходимо в строку «Условия отбора» для заданного поля ввести текст приглашения для ввода данного, заключив его в прямоугольные скобки: [Введите номер группы] (рис. 1.3). Можно задать параметры для нескольких полей или для одного поля определить несколько параметров для отбора, используя запись условия в несколько строк совместно с логической операцией «ИЛИ».

    Если в запрос вводятся несколько параметров, то порядок их ввода через диалоговое окно определяется порядком расположения полей с параметром в бланке запроса.

    Рис. 1.3. Вид запроса с параметром в режиме конструктора

    3. Запрос с итогамипозволяет производить выборку данных одновременно с их группировкой и вычислением групповых итогов с использованием различных статистических функций. В Access предусмотрены девять статистических функций:

    Sum – сумма значений некоторого поля для группы;
    Avg – среднее значение некоторого поля для группы;
    Max, Min – максимальное или минимальное значение поля для группы;

    Count – число значений поля в группе (пустые значения поля не учитываются);

    StDev – среднеквадратическое отклонение от среднего;

    Var – дисперсия значений поля в группе;

    First, Last – значение поля из первой или последней записи.

    Для выполнения групповой операции необходимо в режиме конструктора включить в таблицу описания запроса строку «Групповая операция» (рис. 1.4) и в полях, по которым должно вестись вычисление, заменить слово «группировка» на требуемую статистическую функцию.

    Результат запроса с использованием групповых операций содержит по одной записи (строке) для каждой группы, исходные строки групп отсутствуют.

    В запросах с итогами можно выполнять определенные операции.
    1. Групповые операции над всеми записями. Для этого в полях указываются итоговые функции. Результат запроса представляет собой одну запись, заголовки столбцов соответствуют названию функции и имени поля.

    2. Групповые операции для некоторых групп записей. Функция «ГРУППИРОВКА» указывается для полей, по которым будут группироваться данные. В полях, по которым будут выполняться вычисления, должны быть выбраны функции, соответствующие вычислениям.

    3. Группировка записей, которые соответствуют условию отбора. Для этого необходимо указать условие отбора для поля, где выбрана функция «ГРУППИРОВКА».

    4. Вывод только тех результатов, которые удовлетворяют условию отбора. Для этого условие отбора задается для полей, по которым в строке «Групповая операция» выбрана итоговая функция (например, вывести группы, средний балл студентов которых больше 4,5).

    Рис. 1.4. Вид запроса на выборку с группировкой

    Например: вычислить количество студентов на специальностях (специальности по наименованию)

    5. Перекрестный запросвычисляет сумму, среднее значение, число элементов и значения других статистических функций, группируя данные и выводя их компактно в виде, напоминающем сводную электронную таблицу. В бланке запроса указывается, значения каких полей будут использоваться в вычислениях или в качестве заголовков строк и столбцов.

    Например: рассчитать количество студентов на специальностях (специальности вывести по наименованию) по возрастам:

    Рис. 1.5. Вид перекрестного запроса в режиме конструктора

    Перекрестный запрос – это специальный тип группового запроса. Строка «Групповая операция» должна быть включена. В запросе обязательно должны быть установлены как минимум три параметра – поле заголовка строк, поле заголовка столбцов и поле для выбора значений. Поля, используемые в качестве строк и столбцов, должны содержать функцию «ГРУППИРОВКА» в строке «Групповая операция». Для создания запроса необходимо:

    • создать новый запрос для таблицы (таблиц), включив в макет нужные поля;

    • изменить тип ЗАПРОСА на Перекрестный;

    • в строке «Перекрестная таблица» указать, какое поле используется в качестве заголовка строк, какое в качестве заголовков столбцов и какое для выполнения вычислений в соответствии с выбранной групповой операцией;

    • в строке «Групповая операция» поля значений необходимо выбрать итоговую функцию.

    5. Запрос с вычисляемым полемпозволяет произвести вычисления на основе данных, имеющихся в таблицах. В такой запрос вводятся новые дополнительные поля, содержащие формулы вычислений, причем эти поля создаются только в самом запросе, а не в таблицах базы данных.

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

    Для ввода выражения следует создать новое вычисляемое поле непосредственно в бланке запроса.

    Наряду с выводом результатов вычислений на экран допускается использование вычисляемых полей:
    • для определения условий отбора записейв запросе или для определения записей, над которыми производятся действия;
    • для обновления данных в запросе на обновление.

    Вычисляемые поля позволяют рассчитывать числовые значения и даты; комбинировать значения в текстовых полях; создавать подчиненные запросы; рассчитывать значения итоговых полей с помощью групповых функций.

    Как и для любых других полей для вычисляемых полей допускается сортировка, задание условий отбора и расчет итоговых значений. Для расчета итоговых значений следует выбрать в ячейке строки «Групповая операция» элемент Выражение.

    Выражение– это набор элементов, объединенных операторами. Выражения могут задавать условия отбора в запросах. При этом Access вычисляет выражение при каждом его использовании, то есть при каждом выполнении отбора.

    Выражения могут содержать следующие элементы: константы, литералы, функции, имена объектов.

    Константы– это величины, которые не могут быть изменены:
    Yes, No, Null, False, True.

    Литералы фактические значения, которые вводятся в виде чисел, текстовых строк или дат. Они используются в виде, в котором их ввели. Числовой литерал – это обычное число; текстовый литерал – последовательность символов, заключенных в кавычки; литералы даты
    и времени – значения, заключенные в # . #.

    Ввод данных в вычисляемые поля или их изменение в режимах таблицы или формы невозможен. При изменении значений полей, используемых в выражении, значение вычисляемого поля обновляется автоматически.

    Формула, помещаемая в вычисляемое поле, всегда начинается со знака равенства (=).

    Не нашли то, что искали? Воспользуйтесь поиском:

    Лучшие изречения: Только сон приблежает студента к концу лекции. А чужой храп его отдаляет. 8833 – | 7549 – или читать все.

    78.85.5.224 © studopedia.ru Не является автором материалов, которые размещены. Но предоставляет возможность бесплатного использования. Есть нарушение авторского права? Напишите нам | Обратная связь.

    Отключите adBlock!
    и обновите страницу (F5)

    очень нужно

    Оцените статью
    ПК Знаток
    Добавить комментарий

    Adblock
    detector