Читаем Access 2002: Самоучитель полностью

Теперь попробуем усложнить задачу и сформировать универсальный запрос. Предположим, вы постоянно работаете с той частью объединенного банка данных, которая включает сведения о контрольно-измерительных приборах. Иначе говоря, вы имеете дело с базой данных Контрольно-измерительные приборы. Вам приходится создавать запросы, очень разнообразные по своему построению. Однако вам некогда вникать в структуру таблиц и связей между ними, а также разбираться в том, какие таблицы нужны для подготовки ответа на какой-либо запрос. Необходимо более простое решение. Конечно, можно построить запрос с параметрами, но есть и другой путь. Он не противоречит первому варианту, а скорее дополняет его.

Введите в окно конструктора все таблицы базы данных Контрольно-измерительные приборы со всеми их связями (см. рис. 2.1). (Позднее дело дойдет и до других БД в составе объединенного банка данных.) Ничего не изменяя в ее структуре, в бланке запроса будем формировать запросы различных типов.

Допустим, вы хотите узнать, какие приборы используются для измерения тех или иных физических параметров. На рис. 11.30 показан бланк соответствующего запроса. В этом же окне конструктора вы видите макеты всех таблиц, содержащихся в нашей базе данных. (Отметим, что не все таблицы будут привлекаться в конкретных запросах.) На рис. 11.31 выведена результирующая выборка записей, полученная в ответ на ваш запрос.

Рис. 11.30

Рис. 11.31

На рис. 11.32 показана инструкция SQL для этого запроса. Мы видим, что все ключевые слова сохраняются, как и прежде, на своих местах, но их содержание становится богаче и разнообразнее.

Рис. 11.32

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

Рис. 11.33

В то же время перечень таблиц и схема связей между ними остаются неизменными. Результат выполнения этого запроса приведен на рис. 11.34. Отобраны сведения лишь о тех приборах для измерения кислотности, которыми ведает менеджер Флеминг. Если сравнить рис. 11.34 с рис. 11.31, то можно легко заметить, что число отобранных записей существенно сократилось – с 91 до 5.

Рис. 11.34

Пояснения к инструкции SQL

Теперь более подробно исследуем инструкцию SQL, приведенную на рис. 11.35. Мы несколько раз усложняли структуру запроса, поэтому и инструкция нуждается в определенном комментарии.

Рис. 11.35

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

SELECT [предикат] [* | таблица.* |] [таблица. ]поле 1

[AS псевдоним 1] [, [таблица. ]поле 2 [AS псевдоним 2] […]]}

FROM выражение […] [IN внешняя База Данных]

[WHERE…]

[GROUP BY…]

[HAVING…]

[ORDER BY…]

[WITH OWNERACCESS OPTION]

Перейти на страницу:
Нет соединения с сервером, попробуйте зайти чуть позже