Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Справочный материал-1.doc
Скачиваний:
6
Добавлен:
08.05.2019
Размер:
497.15 Кб
Скачать

1.2 Технология разработки запросов

Основное назначение любой информационной системы состоит в предоставлении пользователю необходимой и достоверной информации.

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

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

  • на выполнение действий (на выборку);

  • обновление;

  • добавление;

  • удаление;

  • создание таблиц.

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

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

Параметрические запросы – это запросы, параметры выбора информации в которых меняются.

Результатом выполнения запросов являются динамические таблицы. По форме динамические таблицы могут быть двух видов:

  • таблицы, структура которых соответствует исходной таблице (таблицам) БД;

  • таблицы, структура которых отличается от исходной таблицы (таблиц) БД, – так называемые кросс-таблицы.

Структура кросс-таблицы отличается от структуры исходной таблицы БД тем, что заголовками столбцов в такой таблице являются не имена, а значения выбранных полей. Такие таблицы формиру­ются с помощью особых видов запросов – перекрестных запросов.

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

Способы создания запросов

В ACCESS пользователю предлагается два способа создания запросов:

1) конструирование с помощью мастеров – в режиме Конструктор;

2) программирование – в режиме SQL.

Создание запроса в режиме Конструктор выполняется с помо­щью системы мастеров. В этом случае пользователь должен указать параметры запроса в окне конструирования, используя при этом предоставляемые мастером возможности. ACCESS в этом случае автоматически формирует код программы в виде специальной пос­ледовательности команд языка SQL.

При программировании запроса в режиме SQL пользователь должен описать все выполняемые запросом действия с помощью команд языка SQL.

Возможности конструирования запросов в режиме Конструк­тор достаточны для создания практически любых задач обработки информации в таблицах БД. Технологию конструирования запро­сов рассмотрим на примере СУБД ACCESS 2000.

Разработка запроса в режиме конструктора

В СУБД ACCESS 2000 разработка запроса может выполняться двумя способами:

  1. самостоятельное создание нового запроса;

  2. создание запроса с помощью мастеров.

При любом способе необходимо открыть окно элементов БД. При активизации кнопки Запросы окна объектов БД от­крывается окно (рисунок 1.8), содержащее все запросы БД. (Все дальнейшие примеры будет рассмотрены на основе базы данных «Учебный процесс»).

Рисунок 1.8 – Окно выбора режима запроса

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

  1. создание запроса в режиме Конструктор;

  2. создание запроса с помощью мастера.

При выборе первого способа открывается окно Создание запроса, в котором пользователю предоставляются следующие режимы разработки запроса (рисунок 1.9):

  1. самостоятельное конструирование запроса (режим Конструктор);

  2. конструирование запроса с помощью мастеров – режимы:

  • простой запрос;

  • перекрестный запрос;

  • повторяющиеся записи;

  • записи без подчиненных.

Рисунок 1.9 – Окно выбора типа запроса

Создание запросов с помощью Конструктора запросов

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

  1. Открыть Конструктор запросов.

  2. В открывшемся окне Добавление таблицы (рисунок 1.10) выбрать таблицу или таблицы, на основе которых составляется запрос (команда Добавить). Выбор осуществляется щелчком мыши по имени соответ­ствующей таблицы. При этом в окне конструктора появится таб­лица с именами полей.

  3. После ввода таблицы (таблиц) щелкнуть по кнопке Закрыть.

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

  5. Установить порядок сортировки записей по значениям каких-либо полей (например, сортировать записи в алфавитном порядке по полю ФИО.

  6. Определить необходимость вывода на экран значений полей. Если «Да», то щелкнуть мышью по квадратику.

  7. Ввести в строку «Условие отбора» соответствующие значения полей, по которым производится отбор данных из таблиц.

В процессе конструирования запроса можно производить про­верку его выполнения. Для этого достаточно щелкнуть мышью по кнопке Выполнение запроса на панели инструментов.

Рисунок 1.10 – Окно Конструктора запросов

Мы рассмотрели технологию создания запроса на выборку. На рисунке 1.11 показан пример заполнения бланка запроса на выборку.

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

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

Правила составления условий отбора данных

При задании условий отбора данных необходимо соблюдать следующие пра­вила.

  1. Перед вводом значения текстового (символьного) поля должен стоять знак «=».

  2. Вводимая строка символов должна быть заключена в кавычки. Данное правило, если вы забыли его соблюсти, ACCESS выполнит сам.

  3. Математические условия выборки определяются известными операторами сравнения (=,< >, <, >, <=, >=).

Кроме этих операторов могут применяться специальные опе­раторы сравнения BETWEEN, IN, LIKE (смотри таблицу 1.2).

Рисунок 1.11 – Пример заполнения бланка запроса на выборку

4. При составлении условий выборки по полям Дата/Время могут применяться условия (функции), которые при составлении запроса вводятся как вычисляемые поля (таблица 1.3). Если необходимо выбрать записи, отвечающие одновременно нескольким параметрам, значениям нескольких полей, что соответствует логическому условию И (AND), то соответствующие зна­чения полей вводятся в строку «Условие отбора».

Таблица 1.3 – Функции, применяемые для задания свойств или условий выборки в полях типа Дата/Время

Функция

Значение

Day

Устанавливает условие выборки по числам месяца в диапазоне от 1 до 31

Month

Устанавливает условие выборки по месяцам в диапазоне от 1 до 12

Year

Устанавливает условие выборки по годам в диапазоне от 100 до 9999

Weekday

Устанавливает условие выборки по дням недели от 1 (воскресенье) до 7 (суббота)

Hour

Устанавливает условие выборки по часам суток от 0 до 23

Datepart «q» или «ww»

Устанавливает условие выборки по диапазонам времени (номер недели, номер квартала). Записывается так:

Datepart «q» — для выбора по кварталам;

Datepart «ww» — для выбора по неделям

(q принимает значения от 1 до 4, ww принимает значения от 1 до 53)

Date ()

Устанавливает текущую дату как условие выборки, напри­мер условие «<Date()-15» означает, что будут выбраны все записи, дата которых меньше текущей на 15 дней

Если выбор записей необходимо произвести по значениям не­скольких полей, связанным отношением исключающего ИЛИ (OR), то соответствующие значения вводятся в ячейки строки «ИЛИ».

Ввод условий отбора данных непосредственно в строки Конструктора запросов мы рекомендуем при конструировании постоян­ных запросов.

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

Конструирование перекрестных запросов

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

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

В результате выполнения запроса необходимо получить дина­мическую таблицу (кросс-таблицу) «Распределение адресов проживания студентов из учебных групп в различных городах» (таблица 1.4).

Таблица 1.4 – Распределение адресов проживания студентов из учебных групп в различных городах

Группа/Город

Оренбург

Орск

Бузулук

Группа 1

10

3

2

Группа …

Группа N

8

3

10

Последовательность создания перекрестного запроса практи­чески не отличается от технологии конструирования запросов, описанной выше.

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

При выборе режима Конструктор необходимо в меню Запрос щелкнуть по кнопке Перекрестный; при этом окно Конструктора запроса примет вид, показанный на рисунке 1.12.

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

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

На рисунке 1.13 представлен результат выполнения этого запроса.

Рисунок 1.12 – Окно конструирования перекрестного запроса

Рисунок 1.13 – Результат перекрестного запроса