Способы объединения данных из нескольких таблиц или запросов в запросе.
Запросы удобно использовать для объединения или выполнения действий над данными, расположенными в нескольких таблицах или запросах. Например, необходимо просмотреть данные о клиенте, а также заказы, которые он разместил. Для получения этих сведений необходимо получить данные из таблиц «Клиенты» и «Заказы».
При добавлении в запрос нескольких таблиц или запросов необходимо убедиться, что их списки полей соединены друг с другом линией объединения, что позволяет 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; Мы поможем в написании вашей работы! |
Мы поможем в написании ваших работ!