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

МА2007лекция3_запросы

.pdf
Скачиваний:
10
Добавлен:
20.03.2015
Размер:
5.05 Mб
Скачать

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

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

Условием отбора является выражение, которое состоит из операторов сравнения (=, <, >, <=, >=), логических операторов (Between, In, Like , And, Or, Not) и операндов.

Операторы сравнения и логическими операторы определяют операцию над одним или несколькими операндами.

Если выражение в условии отбора не содержит оператора, то по умолчанию используется оператор = .

Допускается использование операторов шаблона — звездочка (*) и вопросительный знак (?).

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

Литералами являются конкретные значения, воспринимаемые Access так, как они записаны. В качестве литералов могут быть использованы числа, текстовые значения, даты.

Текстовые значения, если они содержат пробелы или знаки препинания, заключаются в двойные кавычки (в противном случае кавычки можно не вводить, они будут добавлены автоматически), даты – в знаки "#".

Например: 567, "Информатика", #1-Января-2004#.

11

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

Идентификатор представляет собой ссылку на значение поля, элемента управления или свойства. Идентификаторами могут быть имена полей таблиц, форм, отчетов и т.д. Они должны заключаться в квадратные скобки. Как правило, Access производит автоматическую подстановку скобок.

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

Объект![Имя объекта]![Имя эл-та упр-я].Св-во эл-та управления.

Если необходимо указать ссылку на поле в конкретной таблице, форме, отчете, то перед именем поля ставится имя таблицы, формы, отчета, также заключенное в квадратные скобки и отделенное от имени поля восклицательным знаком. Например, ссылка на поле в таблице примет вид [Имя таблицы]![Имя поля]: [Книги]![Жанр], ссылка на свойтво Height элемента управления Стоимость отчета «Книги»: Reports![Книги]![Стоимость].Height, а ссылка на свойство DefaultValue

элемента управления Дата заключения договора в форме «Договор»: Forms![Договор]![Дата заключения договора].DefaultValue.

Логические операторы

Оператор Between позволяет задать интервал для числового значения и даты. Например:

Between 10 And 100 – задает интервал от 10 до 100;

Between #01.01.1997# And #31.12.2003# – задает интервал дат.

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

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

Оператор Like позволяет работать с образцами, использующими символы шаблона при поиске в текстовых полях. Например:

Like "Иванов*"

Логические операторы and, or, not.

Условия отбора, заданные в одной строке, связываются по умолчанию с помощью логической операции "И", заданные в разных строках – с помощью логической операции "ИЛИ".

12

Эти операции могут быть также заданы явно в выражении условия отбора с помощью операторов and и or соответственно. Оператор not задает логическое отрицание условия.

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

Например, рассмотрим базу данных Каталог.

Чтобы вывести на экран только список драм, надо напечатать в столбце Жанр строки Условие отбора слово Драма.

Чтобы получить список книг стоимостью более 30 грн., надо напечатать в столбце Цена строки Условие отбора условие >30.

Чтобы получить список книг, которые стоят от 30 грн. до 50 грн.,

надо воспользоваться выражением >=30 and <=50 или Between 30 And 50.

13

Чтобы получить список драм, которые стоят более 30 грн., надо выражение Драма записать в ячейку жанр строки Условие отбора, а выражение >30 – в яейку Цена.

Чтобы выбрать книги, которые стоят больше 50 грн. или являются драмами, надо напечатать выражение >50 в ячейке Цена строки Условие отбора, а в ячейке Жанр строки Или ввести слово Драма.

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

Чтобы получить список драм или детективов, необходимо 1

вариант: в ячейку Жанр строки ИЛИ вписать Драма, и в дополнительную строку, расположенную под строкой ИЛИ ввести Детектив; 2 вариант: в ячейку Жанр строки Условие отбора вписать In(«Драма», «Детектив»); 3 вариант: в ячейку Жанр строки Условие отбора вписать "Драма" Or "Детектив"

14

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

7.Для удаления столбца из бланка запроса необходимо выделить этот столбец и щелкнуть на кнопке Удалить столбец в группе Настройка запросов на вкладке Конструктор.

8.Чтобы посмотреть на результат выполнения запроса, надо щелкнуть на кнопке Выполнить группы Результаты на вкладке Конструктор или перейти в Режим таблицы (кнопка Режим группы Результаты вкладки Конструктор).

9.Для сохранения созданного запроса можно щелкнув на кнопке Сохранить панели быстрого запуска.

5. Добавление вычисляемых полей

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

Вбазовых таблицах такое поле не создается и его значение не влияет на содержимое этих таблиц. Это сделано для защиты информации в базе данных.

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

15

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

Формула должна начинаться со знака = и может содержать следующие элементы:

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

операторы (арифметические, логические, сравнения и др.);

функции (готовые формулы, которые состоят из имени и аргумента, заключенного круглые скобки)

константы (элементы, которые не изменяются в выражении, например Null, Истина, Ложь);

литералы (например, числовые положительные или отрицательные значения, значения даты и времени).

Наиболее часто при создании выражений используются следующие операторы:

Оператор Описание

+Сложение чисел

Вычитание чисел

*Умножение чисел

/Деление чисел

\Деление первого числа на второе с округлением результата

^Возведение в степень

MOD Вычисление остатка от деления нацело

&Конкатенация строк (объединение текстовых значений)

Для записи длинных формул, которые неудобно записывать в узкое поле бланка запроса, можно воспользоваться окном Область ввода, которое открывается при нажатии клавиш Shiht+F2. В нем есть возможность ввести сколь угодно длинную формулу, а затем добавить ее в поле запроса, щелкув по кнопке ОК.

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

16

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

Для создания вычисляемого поля, нужно:

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

2)ввести в нее выражение для вычисления значения (не забывая при этом, что выражение должно начинаться со знака «=» и имена полей, которые используются в выражении, необходимо заключать в квадратные скобки) и начать клавишу Enter.

На рис. 4.5. представлено созданное вычисляемое поле, в котором вычисляется стоить книг при увеличении их цены на 15 %.

Рис. 4.5.

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

17

Рис. 4.6. Результат выполнения запроса, представленного на рис. 4.5.

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

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

В вычисляемых полях и условиях отбора можно использовать встроенные функции, В Access определено примерно 150 функций. Они сгруппированы по категориям: дата /время (используются при обработке дат и времени в полях и литералах); финансовые (служат для расчета процента возврата по инвестициям, амортизационных отчислений, годовой ренты и т.п.); математические (выполняют операции над числовыми значениями, которые невозможно выполнить с помощью стандартных арифметических операторов); статистические (используются при работе над полями подмножества записей, вычисляют среднее значение, сумму, минимальное, максимальное значения); текстовые (используются при работе с символьными строками) и др.

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

Окно построителя выражений состоит из трех областей.

18

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

Элементы выражения. В нижней части окна построителя находятся три поля.

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

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

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

Примечание. При вставке идентификатора в выражение построитель вставляет только те его части, которые требуются в текущем контексте.

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

1. В БД «Каталог» выбрать книги, поступившие в магазин в 2010 году.

19

В бланк запроса поместим поля Название и Дата поступления из таблицы Книги. Создадим вычисляемое поле, которое в последствии назовем Год поступления и в Построителе выражений создадим формулу, выделяющую из даты, представленной в формате дд.мм.гггг., год, используя для этого функцию Year из категории Дата/время.

В результате в бланке запроса появится вычисляемое поле Год поступления. Но нас интересуют книги, поступившие в магазин в 2010 г. Поэтому с строке Условие отбора бланка запроса зададим условие отбора (год поступления=2010)

Результат выполнения запроса:

20