«Информатика»

Вид материалаУчебное пособие

Содержание


Запросы системы Access
Запросы на изменение
Перекрестные запросы
Запрос на выборку
QBE запросы на выборку
Like “Введи фамилию или её часть ”&”*”.
Подобный материал:
1   ...   31   32   33   34   35   36   37   38   39

Запросы системы Access


Одним из основных инструментов обработки данных в СУБД являются запросы. Запрос строится на основе одной или нескольких таблиц. При этом могут использоваться таблицы базы данных, а также сохра­ненные таблицы, полученные в результате выполнения других запросов. Кроме того, запрос может строиться непосредственно на другом запросе с использованием его временной таблицы с результатами. Последовательное выполнение ряда запросов позволяет решать достаточно сложные задачи, не прибегая к программированию.

По назначению можно выделить следующие виды запросов:
  1. Запросы на изменение. Позволяют изменять структуру или содержание существующей таблицы или создавать новую. Они. являются за­просами действия, в результате выполнения которых изме­няются данные в таблицах.
  1. По произведённому действию различают запросы на:
  • Добавление. Позволяют добавить выбранное подмножество записей в другую таблицу;
  • Удаление. Дают возможность удалить выбранное подмножество записей из таблицы;
  • Обновление. Позволяют произвести обновление полей в выбранном подмножестве записей; данных в указанной таблице;
  • Создание. Позволяют создать новую таблицу базы данных, используя данные из существующих таблиц. Этот запрос отличается от запроса на выборку только сохранением результата запроса как таблицы базы данных. После чего эта таблица может включаться в состав таблиц, на которых строится запрос. Результаты выполнения запроса выводятся в режиме таблицы. Окно запроса в режиме таблицы аналогично окну просмотра таблицы базы данных. Несмотря на то, что поля результирую­щей таблицы принадлежат, как правило, нескольким таблицам базы данных, с ними можно работать так, как если бы они при­надлежали одной таблице.
  1. Перекрестные запросы. Позволяют компактно отображать информацию из нескольких таблиц, объединяя однородную информацию. Многотабличный запрос позволяет сформировать записи путем объединения взаимосвязанных записей из таблиц базы данных и включения, нужных полей из нескольких таблиц. Полученная таблица удобна для создания диаграмм.
  2. Запрос на выборку — выбирает данные из таблицы или взаимосвязанных таблиц или других запросов. Результат выполнения запроса называется выборкой. Выборка это динамическая таблица с записями, удовлетворяющими условиям отбора, указанным в запросе. Она формируется всякий раз заново при выполнении запроса из указанных таблиц и существует до закрытия запроса. С помощью запроса можно выполнить следующие виды обра­ботки данных:
  • выбрать записи, удовлетворяющие условиям отбора;
  • включить в результирующую таблицу запроса заданные поль­зователем поля;
  • произвести вычисления в каждой из полученных записей;
  • сгруппировать записи с одинаковыми значениями в одном или нескольких полях для выполнения над ними групповых функций;

По методу исполнения можно выделить
  • SQL (Structured Query Language) запрос. При его создании используются операции и функции языка SQL (Структурный язык запросов).
  • QBE запрос. В Microsoft Access имеется удобное для поль­зователя графическое средство формирования запроса по образ­цу — QBE (Query By Example), с помощью которого легко может быть построен сложный запрос. Запрос QBE содержит схему данных, включающую используемые таблицы, и бланк запроса. Его параметры устанавливаются в окне конструктора запросов.



    1. QBE запросы на выборку


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

Для получения полноценного запроса следует придерживаться следующих правил:
  1. Обязательно заполняются только строки «Поле» и «Условие отбора».
  2. Строка «Поле» заполняется с помощью, расположенных в ней, раскрывающихся списков имён полей выбранной таблицы (таблиц), теми из них, которые должны присутствовать в выборке. Кроме того, можно выделить и перетащить необходимые поля из таблиц, представленных в схеме данных запроса, в строку «Поле» бланка запроса.
  3. Строка «Таблица» заполняется автоматически именами таблиц для полей выбранных в строке «Поле».
  4. При необходимости в строке «Сортировка» задаётся её вид по одному или нескольким полям. Имеются следующие варианты сортировки: «по возрастанию», «по убыванию», «отсутствует» (используется по умолчанию).
  5. Строка «Вывод на экран» заполняется автоматически включёнными флажками. Если нужно чтобы информация из поля участвующего в запросе не отображалась в выборке, то выключается соответствующий флажок. Например, чтобы данные о величине оклада, используемые в условии отбора, не появились в выборке, отключают флажок, находящийся в столбце «Оклад».
  6. Чаще всего указывается только одно условие для одного поля. Если нужно для него указать несколько условий, объединяемых логическим оператором ИЛИ (выполняется или первое или второе или … условие), то они записываются в разных строках столбца относящегося к этому полю. Первое в строке «Условие отбора», остальные в строках «ИЛИ».
  7. Условие отбора, записанные в одной строке и относящиеся к разным полям должны выполняться одновременно.

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

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

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

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

В выражении условия отбора допускается использование опера­торов сравнения: =, <, >, =, Between, In, Like, и логических операторов And, Or, Not, которые определяют операцию над одним или несколькими операндами. Ниже приведён перечень операторов, которые могут присутствовать в условии отбора и примеры простых условий (Таблица 17). Отметим некоторые особенности написания условий отбора. Если выражение в условии отбора не содержит оператора, то по умолчанию используется оператор =. Текстовые значения в выражении вводятся в кавычках, если они содержат пробелы или знаки препинания. В противном случае кавычки можно не вводить, они будут добавлены автоматически.

Оператор Between проверяет входит ли значение поля в заданный интервал. Используется для полей типа дата/время или числового типа. Например, Between 10 And 100 задает интервал от 10 до 100, а . Between 10.01.70 And 10.02.77 задает интервал от первой даты до последней.

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

Оператор Like сравнивает по образцу, который идёт после оператора и заключается в двойные кавычки “. В образце можно использовать обычные символы и символы шаблона. Чаще всего в качестве символов шаблонов применяются : * # ? . Они обозначают:

* - любое число символов Например по условию, Like “И*”, заданному в поле “Фамилия” выбираются все фамилии начинающиеся на И.

# - одна цифра. Например, по условию, Like”#5”, заданному в поле “Стаж” выбираются строки, где стаж кончается на цифру 5, а по условию Like”##.##.65” заданному в поле “Дата”, строки, где есть даты 1965 года.

? - одна буква Например, по условию, Like “?о?” , заданному в поле “Фамилия” выбираются все фамилии состоящие из трёх букв, причём средняя буква «о» .

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

Например, для получения информации о сотрудниках, чей стаж больше введённого, условие отбора выглядит так : >[Введи минимальный стаж]. При его выполнении на экране появиться диалоговое окно с надписью «Введи минимальный стаж». И после того как туда будет введено число 10 , компьютер проанализирует условие « > 10 » и выдаст выборку, куда будет входить две строки, в которых стаж больше 10 лет.

Для текстовых полей удобно использовать параметрический запрос с оператором Like .Например, условие отбора для поля «Фамилия» , позволяющее находить сотрудников по полной фамилии или её началу будет выглядеть так:

Like “Введи фамилию или её часть ”&”*”.

При его выполнении на экране появиться диалоговое окно c надписью: «Введи фамилию или её часть». И после того как туда будет введена буква П , компьютер проанализирует условие «Like “П*”» и выдаст выборку, куда будет входить две строки с фамилиями ,начинающимися на букву «П».

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


Таблица 17 - Операторы, используемые в условиях отбора

Тип

Оператор

Описание

Пример

Поле

Условие отбора

Арифметические



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

Стаж

=30,5

*

Умножение

Стаж

>2*[Стаж]

/

Деление

Оклад

=([Оклад])/2

+

Сложение

Стаж

>=[Стаж]

-

Вычитание

Стаж

>=[Стаж]-10

Текстовые

&

Объединение строк

Фио

"Сотрудник: " &[ Фио]

Сравнения

>

Больше

Оклад

>5000

<

Меньше

Дата

< 12.02.56

>=

Больше или равно

Стаж

>=12,5

<=

Меньше или равно

Дата

<=12.02.56

=

Равно

Фио

=”Иванов И.И.”

<>

Не равно

Стаж

<>25

Between

Проверка на вхождение в интервал

Стаж

Between 10

And 15

Дата

Between 1.1.70 And 15.03.77

Like

Проверка по образцу

Фио

Like”П*”

Стаж

Like”#5”

Дата

Like”##.##.65”

In

Проверку на равенство любому

значению из списка

Фио

In(“Перов”,”Жуков” ,”Серов”)

Стаж

In(10,12,18)

Дата

In(1.1.70,10.2.82)

Логические

And

И (выполняются все условия)

Стаж

>10 And <15

Or

ИЛИ (выполняется одно из условий)

Дата

1.1.70 Or 10.2.82

Not

НЕ (выполняется обратное условие)

Фио

Not (=”Иванов И.И.”)

Для того чтобы иметь возможность ввести несколько значений для одного поля при выполнении запроса, можно в условии от­бора этого поля определить несколько параметров. Например, для отбора записей по двум группам в условии отбора поля Фамилия можно записать два параметра, связанных логической операцией OR — [первая фамилия] OR [вторая фамилия].