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

КОЭИ Лаб3

.pdf
Скачиваний:
6
Добавлен:
02.05.2015
Размер:
544.97 Кб
Скачать

Лабораторная работа №3

СОЗДАНИЕ ЗАПРОСОВ

3.1 Теоретические сведения

В первую очередь под запросом понимается операция отбора данных из таблицы. Создавая запрос, предполагается получить нужную информацию из базы данных. Запросы можно создавать несколькими способами: с помощью мастера и в режиме конструктора. Источниками создания запросов могут являться как таблицы, так и другие ранее созданные запросы.СУБД MicrosoftAccess позволяет создавать запросы различных типов.

3.1.1 Запросы на выборку данных

1) Простой запрос. Создается в том случае, если нужно выбрать только некоторые поля из одной или нескольких таблиц без каких-либо ограничений. Чтобы создать простой запрос в режиме мастера, нужно активизировать вкладку «Создание» и в разделе «Другие» нажать кнопку «Мастер запросов». В открывшемся диалоговом окне «Новый запрос» (рисунок 1) необходимо выбрать «Простой запрос».

Рисунок 1 –Окно выбора типа создаваемого запроса

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

Рисунок 2 –Окно мастера запросов

2)Запрос с критерием (с условием). Чтобы создать запрос с критерием в режиме конструктора, нужно активизировать вкладку «Создание» и в разделе «Другие» нажать на кнопку «Конструктор запросов». Откроется окно конструктора запросов (рисунок 3).

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

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

окна представляет собой Бланк запроса. Каждая строка в этом бланке имеет название и выполняет определенную функцию.

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

Имя таблицы. В этой строке указываются имена таблиц или запросов, которым принадлежат поля, вставляемые в строку «Поле».

Сортировка. В этой строке задается условие сортировки для определенного поля.

Вывод на экран. В этой строке галочкой помечаются те поля, которые

будут выводиться на экран.

 

 

Условие отбора. В этой строке и в следующей за ней

ещеодной

строке

вводятся условия отбора данных.

 

 

В таблице 1 приведены примеры условий.

 

 

Таблица 1 - Примеры условий

 

 

 

 

 

 

Условие

Описание

 

 

Саратов

Будут отображены записи с текстом “Саратов”.

 

Not Саратов

Будут отображены записи с текстомНе “Саратов”.

In (Саратов, Томск,

Будут отображены записи с

текстом“Саратов”,

Уфа)

“Томск” или “Уфа”.

 

 

Текст, начинающийся с букв “А”-“Л”.

 

>=М

Текст, начинающийся с букв “М”-“Я”.

 

100

Число 100.

 

 

>0

Будут отобраны только те данные, значения которых

 

больше нуля.

 

 

>=10 and <=20

Будут отобраны только те данные, значения которых

или

заключены в диапазоне от 10 до 20.

 

between 10 and 20

 

 

 

#1.01.1999#

Будут отобраны только те данные, значениями

 

которых будет являться дата 1 января 1999 года.

 

Date()

Текущая дата

 

 

>=#01.01.94#

Даты позднее 01.01.94

 

 

*.02.*

Дата, у которой значение месяца – февраль

 

“А*”or”В*”

Будут отобраны только те данные, значениями

 

 

которых являются слова начинающиеся на букву «А»

 

или на букву «В».

 

 

Групповая операция. Под групповой операцией понимается обработка и обобщение значений какого-либо поля при помощи определенной функции (Max, Min, AVG и др.). Данная строка добавляется в бланк при создании запросов с группировкой. Информация по данному виду запросов приведена ниже.

3)Запрос с параметром.Данный вид запроса позволяет пользователю гибко менять критерии (параметры) отбора данных. Для этогов MicrosoftAccess предусмотрено диалоговое окно, которое появляется на экране в момент запуска запроса.

3.1.2 Запросы на вычисление

1)Запрос с вычисляемым полем. Создается в том случае, когда нужно произвести какие-либо вычисления по данным полей. Относится к категории сложных запросов и создается с помощью окна «Конструктор запросов». В этом случае в бланке запроса создается новое поле, в которое записывается выражение.

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

В Таблице 2 приведены примеры выражений.

Таблица 2 - Примеры выражений

Выражение

Описание

[количество]*[цена]

Выражение для вычисления поля стоимость по

 

значениям полей «количество» и «цена».

DATE().

Функция, вычисляющая сегодняшнюю дату

([модуль1]+[модуль2])/2

Выражение для вычисления среднего значения

 

полей «модуль1» и «модуль2»

Чтобы создать запрос, использующий вычисляемое поле, нужно в бланке запроса окна «Конструктор запросов», в ячейку строки «Поле» занести соответствующую формулу.

2) Запрос с группировкой. Групповая операция позволяет легко создавать вычисляемое поле. Например, нужно подсчитать в запросе, сколько раз встречается каждое значение некоторого поля. Чтобы создать запрос с группировкой, нужно, щелчком по кнопке «Групповые операции» панели инструментов «Конструктор запросов», в бланк запроса вставить строку «Групповая операция», и в ячейку под полем, данные которого нужно сгруппировать, выбрать групповую операцию.

ЗАМЕЧАНИЕ: Для проведения групповой операции чаще всего используются следующие функции: Avg - для вычисления среднего значения, Sum – для вычисления суммы, Min – для вычисления минимального значения, Max– максимального значения, Count – для подсчета количества заданных аргументов.

3.1.3 Запросы для анализа данных

1)Перекрестный запрос — это операция построения таблицы для вычисления итоговых значений на основе существующей таблицы или запроса.

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

3.1.4 Редактирование данных при помощи запросов

Существуют запросы, которые позволяют автоматизировать изменение данных в таблицах. Они называются «Запросы-действия». В больших базах данных не всегда удобно изменять информацию вручную. В некоторых случаях необходимы специальные процедуры для внесения изменений по заданному алгоритму.

Кзапросам-действия относятся:

-запрос на добавление данных в таблицу;

-запрос на обновление данных в таблице;

-запрос на удаление данных из таблицы;

-запрос на создание таблицы.

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

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

1.На вкладе «Создание» необходимо нажать кнопку «Конструктор запросов».

2.В появившемся окне «Добавление таблицы» выберите из списка необходимую таблицу (из которой будут добавляться данные) и нажмите кнопку «Добавить».

3.В режиме конструктора на панели инструментов находится список «Тип запроса». Необходимо выбрать из него элемент «Добавление». Откроется окно «Добавление». В этом окне нужно выбрать в списке имя той таблицы, в которую надо добавить данные. Переключатель в окне позволяет указать, в какую базу данных добавляется информация: в текущую или в какую-нибудь другую. После этого окно нужно закрыть.

4.В бланке запросов выберите поля, которые будут добавлены в таблицу. Идеальным вариантом является тот, когда поля обеих таблиц совпадают.

5.Нажмите кнопку«Выполнить» для просмотра результата. ЗАМЕЧАНИЯ:

1.Если поле является индексированным, записи в таблице-приемнике необходимо расположились в отсортированном порядке.

2.Если бы нам потребовалось переместить только часть полей, то каждое поле надо было бы переносить в бланк запроса отдельно, двойным щелчком мыши.

3.При желании можно добавить не все записи из таблицы-источника, а только некоторые, в соответствии с заданным условием. В этом случае нужно перенести каждое поле в бланк запроса отдельно и заполнить строку «Условие отбора». Например, для отбора записей, относящихся к периоду после 1

марта1996 года, в колонке для поля Дата этой строки надо ввести следующее выражение: >#1/03/96#.

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

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

6.Запрос на добавление (если макет его сохранен) можно выполнять неограниченное число раз. Если вы обновите данные в таблице-источнике и снова активизируете запрос, то новые данные будут добавлены в таблицуприемник и т. д.

2)Запрос на обновление обеспечивает одну из важнейших сервисных функций СУБД — автоматизированную обработку данных. Такие запросы позволяют существенно сэкономить время пользователя, выполняющего редактирование информации. Возможности алгоритмического обновления данных заложены в запросы Access изначально, поэтому правило создания таких запросом предельно простое: сначала создается обычный запрос, а затем в его бланке заполняется строка «Обновление».

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

Создание запроса будет выглядеть так:

1.Создать запрос и добавить в него таблицу.

2.Перетащить поля из списка полей на бланк запроса.

3.Выбрать из списка «Тип запроса» элемент «Обновление». В бланке появится строка «Обновление».

4.Ввести условие отбора для поля.

5.Заполнить строку «Обновление» для поля.

6.Просмотреть данные, подвергающиеся обновлению, можно, если переключить запрос в режим таблицы (командой «Вид»>«Режим таблицы»). Кнопка «Выполнить» позволяет выполнить обновление.

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

Последовательность действий должна быть следующая: 1. Создать запрос и включить в него нужную таблицу.

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

3.Выбрать из списка «Тип» запроса элемент «Удаление». В бланке появится строка «Удаление».

4.Заполнить строку «Условие отбора» так, чтобы были отобраны записи, которые надо удалить.

5.Для просмотра записей, которые будут удалены, выбрать «Вид» >«Режим таблицы». Для выполнения запроса, то есть для удаления записей, нажать кнопку «Выполнить».

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

4) Запрос на создание таблицы позволяет создать новую таблицу на основе существующих.

Создание запроса будет выглядеть так:

1.Создать запрос в режиме конструктора и включить в него все необходимые таблицы. Если таблиц несколько, они должны иметь поля для связи.

2.Определить связи между таблицами. Программа пытается сама устанавливать связи, если находит поля с одинаковыми именами и типами. Если Access не может создать связи автоматически, нужно создать их вручную, перетаскивая мышью имена полей из одного списка в другой.

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

4.Выбрать из списка «Тип» запроса элемент «Создание таблицы».

5.Просмотреть полученную таблицу, переключившись в режим таблицы командой «Вид»>«Режим таблицы». Будет представлена таблица в том виде, как она будет создана после завершения операции. Если результат устроит, то необходимо нажать кнопку «Выполнить».

ЗАМЕЧАНИЯ:

1.Разработка запроса на создание таблицы содержит два этапа. Сначала создается обычный запрос любым доступным и удобным способом. На втором этапе появляется новая таблица, после того как обычный запрос преобразуется

взапрос на создание таблицы. Выполнение второго этапа означает копирование данных внутри одной базы данных или в другую базу данных.

2.Запрос на создание таблицы можно использовать неоднократно, причем двумя способами. Если вы попытаетесь открыть такой запрос или нажмете кнопку «Выполнить» в режиме конструктора, то запрос будет запущен на выполнение и программа предложит перезаписать полученную ранее таблицу,

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

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

3.2 Упражнения

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

1.Активизируйте вкладку «Создание» в разделе «Другие» нажмите кнопку «Мастер запросов».

2.В окне «Новый запрос» выберите способ «Простой запрос».

3.По полям Фамилия, Название предмета, Оценка из разных таблиц создайте простой запрос.

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

1.На вкладке «Создание» в разделе «Другие» нажмите кнопку «Конструктор запросов».

2.В окно «Конструктор запросов» вставьте все три таблицы базы данных, из которых будут выбираться данные для запроса.

3.Заполните бланк запроса: в каждую ячейку строки «Поле» нужно вставить поля, которые будут выводиться в запросе (с помощью раскрывшегося списка), а в строке «Условие отбора» под полямивведите условия отбора, так как показано на рисунке 4.

Рисунок 4 – Вид макета запроса с критерием

Для создания запроса с параметром (параметром является фамилия студента).

1.На вкладке «Создание» в разделе «Другие» нажмите кнопку «Конструктор запросов».

2.В окно «Конструктор запросов» вставьте все три таблицы базы данных, из которых будут выбираться данные для запроса.

3.Заполните бланк запроса: в каждую ячейку строки «Поле» нужно вставить поля, которые будут выводиться в запросе (с помощью раскрывшегося списка), а в строке «Условие отбора» под полем Фамилия задайте параметр (рисунок 5).

Рисунок 5 – Вид макета запроса с параметром

4. запустите запрос.В появившемся окне введите фамилию Ленц.

Для создания запроса, вычисляющего среднюю оценку всех студентов,

необходимо создать Бланк запроса так, как показано на рисунке 6.

Рисунок 6 –Макет запроса с вычисляемым полем

Создадим еще один запрос с вычисляемым полем, в котором будем определять, какие экзамены сданы студентами, а какие нет.

Для этого необходимо создать Бланк запроса так, как показано на рисунке

7.

Рисунок 7 –Макет запроса с вычисляемым полем

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

1.Установите указатель в позицию, в которую требуется ввести выражение, и нажмите правую кнопку мыши.

2.В контекстном меню выберите команду «Построить…» На экране появится окно построителя выражений.

3.Используя панель инструментов построителя, создайте выражение, как показано на рисунке 8.

Рисунок 8 –Окно построителя выражений

4. После создания выражения нажмите кнопку «ОК»