Параметрические SQL запросы в СУБД Access

RSS, Twitter, Vkontakte, Facebook

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

Параметрические SQL запросы или запросы с параметрами в СУБД Access 2003 и 2007

Автор: Владимир Ткаченко

Источник: Обучение в интернет

В данной статье рассмотрим параметрические SQL запросы или запросы с параметрами на выборку данных из таблиц БД Access. Для создания SQL запроса откроем базу данных sql_training_st1_calcul.mdb.

Известно, что для извлечения информации, хранящейся в базе данных БД Access 2003 или 2007, можно применить запрос SELECT на выборку данных из таблиц. Что касается запроса с параметрами, то он извлекает данные лишь в том случае, когда в диалоговом окне "Введите значение параметра" будет введено имя параметра отбора.

Составим параметрический SQL запрос (инструкцию SQL), для этого в открытой БД sql_training_st1_calcul.mdb на вкладке "Создание" выберем команду "Конструктор запросов". Откроется активное окно диалога "Добавление таблицы" на фоне неактивного окна «Запрос1», далее надо закрыть окно диалога "Добавление таблицы". Затем на контекстной вкладке "Конструктор" выберем режим SQL, выполнив команду SQL, в результате в окне редактирования будет отображаться оператор SELECT.

Вводим с клавиатуры следующую инструкцию SQL:
SELECT Группы.Название, Студенты.Фамилия, Дисциплины.Название, Успеваемость.Оценка
FROM (Группы INNER JOIN Студенты ON Группы.КодГруппы = Студенты.КодГруппы) INNER JOIN (Дисциплины INNER JOIN Успеваемость ON Дисциплины.КодДисциплины = Успеваемость.КодДисциплины) ON Студенты.КодСтудента = Успеваемость.КодСтудента
WHERE ((Студенты.Фамилия)=[Введите фамилию])
ORDER BY Студенты.Фамилия;

Эта инструкция состоит из четырех предложений "SELECT. . .", "FROM. . .", "WHERE..." и "ORDER BY...".
Первое предложение содержит оператор SELECT и идентификатор "Группы.Название, Студенты.Фамилия, Дисциплины.Название, Успеваемость.Оценка". Выбор данных осуществляется из четырех полей четырех таблиц. Чтобы однозначно идентифицировать поля в запросе, перед именами полей указаны имена таблиц (например, Группы.Название).

Второе предложение содержит оператор FROM и идентификатор "(Группы INNER JOIN Студенты ON Группы.КодГруппы=Студенты.КодГруппы) INNER JOIN (Дисциплины INNER JOIN Успеваемость ON Дисциплины.КодДисциплины=Успеваемость.КодДисциплины) ON Студенты.КодСтудента=Успеваемость.КодСтудента".

FROM - определяет таблицы "Группы", "Студенты", "Дисциплины" и "Успеваемость", которые содержат поля, указанные в предложении SELECT, и обеспечивает взаимосвязи таблиц через ключевые поля таблиц с помощью конструкции INNER JOIN ... ON. Следует отметить, что операторы: SELECT и FROM всегда присутствуют в запросах на выборку.

Третье предложение содержит оператор WHERE и идентификатор "((Студенты.Фамилия)=[Введите фамилию])", определяющий условия отбора.
Четвертое предложение содержит оператор ORDER BY и идентификатор "Студенты.Фамилия". ORDER BY не является обязательным оператором и применяется для сортировки выходных данных.

На рисунке 1 представлен скриншот параметрического SQL запроса на выборку данных, сохраненный с именем "Запрос_с_параметрами".

Параметрический SQL запрос на выборку
Рис. 1. Параметрический SQL запрос на выборку данных

В результате выполнения команды "Сохранить" в «Области переходов» появится объект - «Запросы: Запрос_с_параметрами».

После сохранения параметрического SQL запроса на выборку данных необходимо выполнить этот запрос, щелкая на пиктограмме «Выполнить» (рис.2).

Параметрический SQL запрос в режиме - Выполнить
Рис. 2. Параметрический SQL запрос в режиме "Выполнить"

Для выполнения запроса введем имя параметра отбора (Воронина) в диалоговое окно "Введите значение параметра" и щелкнем на кнопке "OK".

Результаты выполнения команды «Выполнить» представлены на рис. 3.

Выборка данных на запрос с именем параметра отбора - Воронина
Рис. 3. Выборка данных на запрос с именем параметра отбора - Воронина

Скачать sql_training_st1_param.mdb

Подпишитесь на мою рассылку СУБД MS Access 2003, 2007 -это просто!