Многотабличные запросы
Все возможности запросов, основанных на одной таблице, реализуемы и при объединении данных из нескольких связанных таблиц. Связь между базовыми таблицами можно задать с помощью первичных ключей, либо командами Сервис®Схема данных. Все остальные действия при создании запросов точно такие же, как и рассмотренные ранее.
Пример 1.Из таблицы ПОСТАВЩИКИ выбрать записи, где ДатаПоставки – 2006 год. Окно конструктора запросов при этом будет иметь вид (рис.1.6).
1.6. Запрос на выборку для решения задачи (пример 1)
Пример 2.Составить запрос на удаление: из таблицы ТОВАРЫ удалить записи, где Стоимость товара меньше 1000. Для этого вызывается таблица ТОВАРЫ, перетаскивается символ * и в строке Удаление выбирается Из(см. первый столбик рис.1.7). Во второй столбец, перетаскивается имя поля, для которого устанавливаются Условия.
Рис.1.7. Запрос на удаление записей
Структурированный язык запросов (SQL)
Запрос, который создается с помощью бланка QBE, будет храниться в компьютере в виде директивы SQL, называемой сообщением. При работе с Access сам язык SQL от нас обычно скрыт. Например, все операции с запросами выполняются с использованием SQL, но при этом мы видим на экране лишь бланк запроса. Сообщения SQL и окно бланка запроса связаны динамически: любое изменение в одном из них автоматически приводит к изменению в другом. Переход од одного режима к другому осуществляется через пункты меню Вид.
При создании большинства запросов знание языка SQL не требуется. Достаточно для этого бланка QBE. Однако, нередко легче внести изменения в режиме SQL непосредственно, чем открывать и редактировать форму отдельного запроса каждый раз при изменении набора данных. Кроме того, когда нужно создавать подчиненные запросы, результаты которых используются в качестве условий сравнения в других запросах, необходимо знание языка SQL.
Cообщение SQL состоит из ключевых слов, а также идентификаторов и выражений Access. Наиболее важные ключевые слова в SQL:
select - первое слово всех сообщений SQL, с помощью которого проводится поиск данных в одной или нескольких таблицах в базе данных. За ключевым полем select следуют имена всех полей, которые включаются в выборку. Используя знак * после select, можно автоматически включить в запрос все поля исходной таблицы;
distinct – исключает повторяющиеся значения из поля в наборе записей, которые найдены с помощью SQL;
distinctrow – удаляет дублирующие записи из выборки;
from – указывает, какая таблица (или таблицы) содержат нужные нам поля;
join - обозначает связь между записями, содержащимися в разных таблицах;
where – обозначает условия выбора, которые должны использоваться при выборе записей для включения их в выборку;
order by – обозначает режим сортировки для набора данных;
group by – означает, что будет возвращена одна запись для каждого отдельного значения в указанном поле. Если group by включается в select,список выбора должен включать функции avg, count, sum и др.
При вводе условий выбора записей можно использовать знаки отношений, логические операции and и or, операторы: between, in, like.
Для иллюстрации синтаксиса языка SQL воспользуемся таблицей “Продажи”. Пример 1. Записать сообщение SQL, для заполнения поля “Стоимость”, значение которого вычисляется по формуле: Стоимость = Продано * Цена_Ед
Select distinctrowПродажи.Продано,
Продажи.Цена_ед,
[Продано]*[Цена_ед] as Стоимость
fromПродажи;
Пример 2. Найти записи с датой заказа в марте месяце.
select *
from Продажи
where month(Дата_заказа) = 3;
Пример 3. Записи таблицы, полученные в примере 2, расположить по возрастанию кода покупателя.
select *
from Продажи
where month(Дата_заказа) = 3
order by Код_покупателя;
Пример 4. Подсчитать стоимость товаров, сделанных каждым покупателем.
select distinctrow.Код_покупателя,
sum([Продано]*[Цена_ед]) as Стоимость
from Продажи
group by Код_покупателя;
Пример 5. Выбрать записи с датой заказа 31 марта 2006.
select *
from Продажи
where Дата_заказа = #3/31/06#;
Пример 6. Запрос с параметром на выборку по названию кафедры.
select *
from Кафедра
where Название=[Введите название кафедры];
1.7. Создание и редактирование форм.
Дата добавления: 2015-05-19; просмотров: 1000;