Создание запроса на выборку

Программа работы

1. Назначение запросов.

2. Виды запросов.

3. Создание запроса на выборку.

4. Выражения. Использование построителя выражений.

5. Групповые операции.

Краткие сведения

Непременным правилом создания таблицы в СУБД является строгое определение содержимого самой таблицы. В ее ячейках может храниться только фактическая и только неизменяемая информация. Это может показаться странным и слишком искусственным для пользователей электронных таблиц, однако ни в Microsoft Access, ни в СУБД вообще, в ячейках базовых таблиц принципиально не может быть вычисляемых значений.

Естественно, было бы совершенно невозможно оперировать данными без того, если бы не существовала какая-нибудь возможность обойти это препятствие. Для этого в СУБД существуют так называемые запросы. Собственно говоря, запросы — это те же самые таблицы, только они заполняются не вручную, а при помощи заранее заданных формул и прочих зависимостей. Таким образом, то, что нельзя в таблице, можно в запросе. Складывать. Вычитать. Делить. Выполнять прочие математические или логические операции. А свое название запросы получили оттого, что они схожи с широко распространенным естественным действием аналогичного назначения. Например, запросом является ну хотя бы такая конструкция: «Кто конкретно покупал автомобиль ВАЗ 21099 вишневого цвета в период с января по декабрь 1998 года и расплачивался при этом наличной иностранной валютой, в качестве которой использовались швейцарские франки?». Столкнувшись с подобным запросом, СУБД самостоятельно просмотрит соответствующие таблицы, в которых хранятся фактические данные, и отберет из них все строки, которые соответствуют требованиям запроса. Причем с самими таблицами ничего не происходит, в таблицу запроса передаются лишь копии этих записей.

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

Место запросов в БД показано на рис. 3.1.

Создание запроса на выборку - student2.ru

Рис. 3.1. Место запросов в БД

Запрос позволяет выполнять:

· Просмотр и редактирование данных из нескольких таблиц.

· Выбор полей и записей для просмотра.

· Сортировку записей.

· Вычисления и групповые операции.

· Обновление, удаление или добавление групп записей в таблицах или создание новой таблицы.

Запрос по образцу (Query by Example, QBE) изначально предназначался для пользователей приложений баз данных на больших машинах, чтобы они могли осуществлять поиск данных без знания языков программирования. Многие СУБД пришли к использованию запросов по образцу в той или иной форме.

Пример инструкции QBE в командной строке:

LIST ALL lastnames LIKE Lin* WITH state=”IL” IN us_hist

По этой инструкции производится поиск фамилий, начинающихся с ”Lin”, в поле lastnames таблицы us_hist, при этом окончания строк в поле игнорируются, и затем отбираются те записи, которые содержат значение ”IL” в поле state.

В процессе развития дисплеев появился более удобный метод создания запроса – графические запросы по образцу (graphical QBE), имеющие вид таблицы, заголовками столбцов которой являются имена полей одной или нескольких таблиц БД. Чтобы создать запрос, пользователь вводил в эти столбцы части полной инструкции, или выражения (expression). Ввиду того, что во время появления графических QBE графические дисплеи были редкостью, использовался текстовый режим – 25 строк по 80 символов, т.е. термин «графический» применительно к QBE употреблялся неправильно. В первых версиях графического QBE пример, приведенный выше, мог выглядеть так:

LASTNAME FIRSTNAME ADDRESS CITY STATE
LIKE Lin*       IL

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

После проверки полей, для которых заданы условия отбора, и нахождения подходящих записей в указанном файле, эти записи выводятся на экран в виде таблицы:

LASTNAME FIRSTNAME ADDRESS CITY STATE
Lincoln Abraham 123 Elm St. SpringField IL
Lincoln Mary Todd 123 Elm St. SpringField IL

Вводить выражения в столбцы графического QBE для многих пользователей оказалось гораздо проще, чем задавать инструкции QBE в командной строке, т.к. для этого требовалось знать синтаксис очень немногих выражений. Использование механизма графического QBE было одним из достоинств СУБД Paradox фирмы Ansa Software, занимавшей первое место на рынке настольных СУБД для ПК, пока ее не вытеснили оттуда СУБД dBASE II и dBASE III.

Виды запросов

Основные виды запросов:

· запрос на выборку;

· запросы-действия (запросы на изменение):

· запрос на создание таблицы,

· запрос на добавление записей,

· запрос на обновление записей,

· запрос на удаление записей;

· перекрестные запросы.

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

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

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

- обновить группу записей (в результате выполнения запроса содержимое нескольких произвольных полей или даже целых записей может быть заменено новыми данными);

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

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

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

Создание запроса на выборку

Наши рекомендации