Способы объединения данных из нескольких таблиц или запросов в запросе.



 

Запросы удобно использовать для объединения или выполнения действий над данными, расположенными в нескольких таблицах или запросах. Например, необходимо просмотреть данные о клиенте, а также заказы, которые он разместил. Для получения этих сведений необходимо получить данные из таблиц «Клиенты» и «Заказы».

При добавлении в запрос нескольких таблиц или запросов необходимо убедиться, что их списки полей соединены друг с другом линией объединения, что позволяет Microsoft Access определить тип объединения.

 

Если таблицы в запросе не соединены прямо или косвенно друг с другом, то для Microsoft Access остается неизвестным, какие записи связаны с какими, и на экране отображаются все комбинации записей между двумя таблицами (это называется «полное объединение» или «декартово произведение»). Таким образом, если таблица содержит 10 записей, то в результате запроса будет 100 записей (10X10). Также время выполнения запроса очень увеличится, а полученные в конечном счете результаты будут не столь значительны.

 

Если же ранее в окне «Схема данных» были созданы связи между таблицами, то при добавлении связанных таблиц в режиме конструктора линии объединения выводятся на экран автоматически. Если необходима целостность данных, то над линией объединения автоматически отображается цифра «1», означающая, что таблица находится на стороне «один» в отношении связей «один-ко-многим», а также знак целостности для указания таблиц, находящихся на стороне «многие».

 

Если связи не были созданы, то при добавлении в запрос двух таблиц, содержащих поля с одинаковым или совместимым типом данных, а также если одно из объединенных полей является ключевым, то связи будут созданы автоматически. В этом случае символы «один» и «многие» отображены не будут, так как целостность данных не требуется.

Иногда таблицы, добавляемые в запрос, не содержат полей, которые могут быть объединены. В этом случае рекомендуется создать одну или несколько дополнительных таблиц или запросов, которые будут служить в качестве моста между таблицами, данные которых должны быть использованы. Например, если в запрос добавить таблицы «Клиенты» и «Заказано», то между ними не будет линии связи, так как они не содержат полей, которые могут быть объединены. А таблица «Заказы» связана с обеими таблицами. Таким образом, таблицу «Заказы» можно включить в запрос, тем самым обеспечив связь между указанными двумя таблицами.

 

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

 

Если требуется выделить записи, основанные на значении из объединенного поля, которое больше, меньше, не равно, равно, больше или равно или меньше или равно значению из другого объединенного поля, необходимо в режиме SQL создать инструкцию SQL.

Примечание. При создании запроса на несколько таблиц, пользователь может иметь или не иметь возможность обновления данных.

 

Использование условия отбора в запросах или фильтрах для восстановления определенных записей.

 

Условия отбора - это ограничения, которые пользователь накладывает на запрос или расширенный фильтр для определения записей, с которыми он будет работать. Например, вместо просмотра всех поставщиков фирмы, можно просмотреть только поставщиков из Литвы. Для этого необходимо указать условие отбора, отсеивающее все записи, кроме тех, у которых в поле «Страна» указано «Литва».

Чтобы установить условие отбора для поля в бланке запроса, в ячейку Условие отбора для данного поля введите выражение. В предыдущем примере выражением является «Литва». Могут быть использованы и более сложные выражения, например, Between 1000 And 5000. Если запрос содержит связанные таблицы, то значения, указанные в условии отбора для полей из связанных таблиц, должны быть с учетом регистра, ѕ это означает, что они должны соответствовать регистру значений в базовой таблице.

 

Для того же поля или для нескольких полей можно ввести дополнительные условия отбора. Если выражения вводятся в несколько ячеек Условие отбора, то они автоматически комбинируются с помощью операторов And или Or. Если выражения находятся в разных ячейках, но в одной строке, то автоматически используется оператор And, что означает, что будут возвращены только записи, отвечающие условиям отбора, указанным во всех ячейках. Если же выражения находятся в разных строках бланка запроса, то автоматически используется оператор Or, что означает, что возвращены будут записи, отвечающие любому условию отбора, указанным в ячейках.

 

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

Контрольные вопросы.

 

1. Для чего нужны запросы ?

2. Как создать простой запрос на выборку при помощи мастера ?

3. Как создать перекрестный запрос при помощи мастера ?

4. Как найти повторяющиеся значения записей или полей в таблице при помощи мастера ?

5. Как создать запрос при помощи конструктора ?

6. Как создать запрос с определенным условием отбора ?

7. Как создать запрос с выборкой значений поля из определенного диапазона ?

8. Как в запрос включить групповые операции (max, min, …) ?

9. Как объединить данные из нескольких таблиц в запросе ?


Дата добавления: 2018-04-15; просмотров: 343; Мы поможем в написании вашей работы!

Поделиться с друзьями:






Мы поможем в написании ваших работ!