- •Лабораторная работа 3. Получение информации из бд в субд Access 2000.
- •1. Поиск и замена значений данных.
- •2. Простая сортировка записей.
- •3. Применение фильтра.
- •4. Формирование запросов.
- •4.1. Самостоятельное создание запроса.
- •4.2. Создание запросов с помощью мастеров.
- •4.3. Создание запросов-изменений.
4. Формирование запросов.
Запрос – это объект БД, позволяющий:
получать данные из одной или нескольких таблиц;
изменять данные в таблицах;
предоставлять данные для форм и отчетов;
осуществлять различные формы доступа к одной и той же информации.
По запросу данные выбираются из одной или нескольких таблиц и выводятся в виде динамического набора записей (если данные можно изменять и эти изменения автоматически отражаются в базовых таблицах) или статического набора записей (если данные менять нельзя). Вид получаемого набора записей зависит от типа запроса.
СУБД Access 2000 позволяет создавать следующие типы запросов:
Запрос-выборка - осуществляет выборку записей по различным критериям.
Запрос с параметрами - позволяет определить одно или несколько условий отбора во время выполнения запроса.
Перекрестный запрос - выполняет группировку данных по категориям и выводит их в компактном виде, напоминающем электронную таблицу.
Запрос-изменение - осуществляет изменение или перемещение данных.
Каждый тип запроса в окне БД имеет свой значок.
Для создания запроса надо, находясь в окне БД на вкладке “Запросы”, выбрать кнопку Создать. В этом случае предоставляется 2 возможности: создать запрос с помощью мастеров (Простой запрос, Перекрестный запрос, Повторяющиеся записи, Записи без подчиненных) или самостоятельно создать запрос (Конструктор). Чаще всего запросы разрабатываются самостоятельно.
4.1. Самостоятельное создание запроса.
Окно запроса в режиме конструктора запроса похоже на окно расширенного фильтра. При этом возникает панель инструментов “Конструктор запросов” со следующими кнопками:
Вид - переход между режимами представления запроса: режим конструктора запроса, режим SQL (формирующий эквивалентное выражение запроса на языке SQL), отражение результата сформированного запроса в режиме таблицы;
Сохранить - сохранение структуры запроса (но не данные);
Тип запроса - выбор типа формируемого запроса;
Запуск - выполнение активного запроса;
Отобразить таблицу - добавление в запрос новых таблиц и/или запросов;
Групповые операции - добавление/удаление строки “Групповая операция” в бланке запроса (используется для расчета итоговых значений);
Набор значений - задание режима отражения всех, определенного числа или определенного процента записей, удовлетворяющих активному запросу;
Свойства - вывод бланка свойств запроса (обеспечивает просмотр и изменение свойств полей в запросе и свойств запроса в целом).
Задание: Открыть новый запрос в режиме конструктора запросов, ознакомиться с кнопками панели инструментов “Конструктор запросов” и добавить в бланк запроса таблицу ПРЕДПРИЯТИЯ.
Список полей таблицы в конструкторе запросов имеет символ *, который позволяет включить в запрос все поля, существующие в данный момент в базовой таблице. При выборе * все изменения в структуре базовой таблицы, например, добавление или удаление полей, автоматически отражаются в запросе.
Для полей с символом * невозможно задать сортировку и условия отбора. Если все же необходима сортировка или задание условий отбора, то такие поля необходимо добавить в бланк запроса отдельно. Чтобы эти поля не появлялись дважды в динамическом наборе, надо отключить для них вывод на экран.
Задание: Переместить символ * в бланк запроса, добавить поле ГОРОД, указав для него в качестве условия отбора конкретное значение. Переключиться в режим SQL и просмотреть созданный запрос на языке SQL. Переключиться в режим таблицы и просмотреть результаты созданного запроса. Сохранить запрос под именем “Символ *”.
Сохраненный запрос возникает в окне БД на вкладке “Запросы”. Этот запрос можно снова открыть. Для открытия его в режиме конструктора используется кнопка Конструктор. Для открытия запроса в режиме таблицы используется кнопка Открыть.
а). Создание запроса-выборки.
Задание: Определить перечень городов, в которых находятся предприятия.
Обеспечить в таблице ПРЕДПРИЯТИЯ, чтобы часть предприятий находились в одном городе, и выполнить указанный запрос с использованием различных предикатов предложения SELECT инструкции SQL.
Определить, в каких случаях результирующий набор записей является обновляемым (динамическим), а в каких необновляемым (статическим).
Задание: Вывести информацию о двух самых дешевых заказах, а затем о двух самых дорогих заказах.
Задание: Вывести информацию о предприятиях, находящихся в каких-либо двух городах.
Задание: Вывести информацию о заказах, в шифре которых присутствуют две определенные буквы.
Задание: Определить шифры заказов (с указанием шифров предприятий), дата отгрузки которых находится в определенном диапазоне.
Задание: Определить шифры заказов (с указанием шифров предприятий), для которых не выполнена еще отгрузка.
Задание: Вывести информацию о заказах, стоимость и объем которых находятся в определенных диапазонах.
Задание: Вывести информацию о заказах, стоимость или объем которых превышают определенную величину.
Задание: Определить наименование, объем и плановую дату выполнения заказов, для которых не произведены еще все отгрузки.
Задание: Для предыдущего запроса выполнить различные типы объединений (INNER JOIN, LEFT JOIN, RIGHT JOIN) и обосновать разницу в результатах.
Задание: Вывести информацию о выполненных заказах предприятиями определенного города (с указанием стоимости и объема этих заказов).
Задание: Вывести информацию о предприятиях, объединив столбцы ГОРОД, АДРЕС и ТЕЛЕФОН. Созданному столбцу дать новое имя.
Задание: Подсчитать среднюю стоимость и средний объем заказов с переименование столбцов в результирующем наборе.
Задание: Вычислить среднюю цену одной единицы заказов.
Задание: Сколько заказов выполняется каждым предприятием?
Задание: Определить количество предприятий, выполняющих каждый заказ.
Задание: Определить количество предприятий в каких-либо двух городах (по отдельности для каждого города). Запрос создать двумя способами: с ограничением числа выводящихся групп и с ограничением числа записей перед выполнением группировки.
Задание: Определить количество невыполненных заказов каждым из предприятий.
Задание: Какова общая стоимость выполненных заказов каждым из предприятий с указанием названия и телефона предприятия.
Задание: Определить предприятия, которые не участвуют в выполнении заказов (с использованием подзапроса).
Задание: В выполнении каких заказов принимают участие предприятия, находящиеся в определенном городе? (с использованием подзапроса).
Задание: Какие предприятия с указанием города, где они располагаются, выполняют хотя бы один заказ, стоимость которого не более определенной величины? (с использованием подзапроса).
б). Создание запроса с параметрами.
Задание: Вывести адрес и телефон предприятия с запросом у пользователя шифра этого предприятия.
Задание: Вывести информацию о заказах, в шифрах которых имеются буквы, задаваемые пользователем.
Задание: Вывести шифры и объемы заказов, у которых диапазон даты отгрузки задается пользователем.